Translations:Scalability/4/fr

From Alliance Doc
Jump to navigation Jump to search

Deuxièmement, la parallélisation requiert habituellement une certaine part de communication et de synchronisation entre les processus qui travaillent en parallèle; cette charge additionnelle est en quelque sorte un coût indirect qui augmente de façon non linéaire avec le nombre de cœurs exprimé par . Supposons maintenant que le temps d’exécution de la partie scientifique du programme est employé également par chacun des cœurs (sans compter la partie résiduelle en série) et que ; le facteur déterminant de la durée totale d’exécution (où , et sont des nombres réels positifs dont les valeurs dépendent de la grappe, du programme et du problème) sera ici le coût indirect de la parallélisation quand . Si et sont beaucoup plus grands que , le temps d’exécution par rapport au nombre de cœurs suivra la courbe représentée ici.

Scaling plot.png

Remarquez que la durée d’exécution diminue lorsqu’on utilise peu de cœurs, puis qu’un minimum est atteint autour de et enfin que la durée augmente avec l’ajout de processus, donnant foi au proverbe trop de cuisiniers gâtent la sauce. Quand vous utilisez un programme parallèle, il est primordial d’effectuer une analyse de scalabilité semblable afin d’identifier le nombre optimal de cœurs CPU entre 4, 128, 1024 ou autre, selon la nature et la taille du problème et selon la grappe sur laquelle le programme est exécuté.