2009-05-24 6 views

Répondre

5

Le maximum que vous pouvez atteindre d'un point de vue théorique est l'accélération linéaire. En pratique, il est possible super linear speedup. Si vous pouvez répartir votre problème de façon à pouvoir tirer parti des effets des caches de processeur, par ex. Parce qu'il ne rentre pas dans le cache d'un seul noyau, votre problème peut évoluer mieux que linéaire.

1

En théorie, non - mais en pratique cela pourrait être le cas (en fonction du matériel sous-jacent et de votre problème spécifique). Il n'est pas trivial de comparer le code parallèle et séquentiel (vous devez comparer l'implémentation séquentielle la plus rapide avec votre implémentation parallèle, et pas seulement votre implémentation parallèle s'exécutant sur un seul processeur/thread). Mais quand quelqu'un parle d'accélération plus que linéaire, je serais toujours méfiant; ils ne l'ont pas mesuré correctement (voir ci-dessus), ont mesuré un artefact (matériel/système d'exploitation dépendant) et devraient le documenter en conséquence, ou cela ne fonctionne que pour une combinaison spécifique de problème/implémentation/matériel.

Questions connexes