Article de reference

Ralentissement parallèle

Diagramme du temps d'exécution du programme (affiché en bleu) et de l'accélération du programme (affiché en rouge) d'un programme réel avec une parallélisation sous-optimale. Le...

Diagramme du temps d'exécution du programme (affiché en bleu) et de l'accélération du programme (affiché en rouge) d'un programme réel avec une parallélisation sous-optimale. Les lignes en pointillés indiquent une parallélisation optimale : augmentation linéaire de l'accélération et diminution linéaire du temps d'exécution du programme. Notez qu'au final, le temps d'exécution augmente avec le nombre de processeurs (et l'accélération diminue également). Il s'agit d'un ralentissement parallèle.

Le ralentissement parallèle est un phénomène de calcul parallèle où la parallélisation d'un algorithme parallèle au-delà d'un certain point entraîne un ralentissement de l'exécution du programme (qui prend plus de temps à s'exécuter jusqu'à son achèvement).

Le ralentissement parallèle résulte généralement d'un goulot d'étranglement des communications. À mesure que des nœuds de processeur sont ajoutés, chaque nœud de traitement passe progressivement plus de temps à effectuer des communications qu'à effectuer des traitements utiles. À un moment donné, la surcharge de communication créée par l'ajout d'un autre nœud de traitement dépasse la puissance de traitement accrue fournie par ce nœud, et un ralentissement parallèle se produit.

Le ralentissement parallèle se produit lorsque l'algorithme nécessite une communication importante, notamment sur les résultats intermédiaires. Certains problèmes, appelés problèmes de parallélisme gênant , ne nécessitent pas une telle communication et ne sont donc pas concernés par le ralentissement.

Calcul parallèle