AccueilđŸ‡«đŸ‡·Chercher

Loi d'Amdahl

En architecture informatique, la loi d'Amdahl donne l'accélération théorique en latence de l'exécution d'une tùche à charge d'exécution constante que l'on peut attendre d'un systÚme dont on améliore les ressources. Elle est énoncée par l'informaticien Gene Amdahl à l'AFIPS Spring Joint Computer Conference en 1967.

Évolution selon la loi d'Amdahl de l'accĂ©lĂ©ration thĂ©orique en latence de l'exĂ©cution d'un programme en fonction du nombre de processeurs l'exĂ©cutant, pour diffĂ©rentes valeurs de p. L'accĂ©lĂ©ration thĂ©orique est limitĂ©e par la partie sĂ©rielle du programme. Par exemple, si 95 % du programme peut ĂȘtre parallĂ©lisĂ©e, l'accĂ©lĂ©ration thĂ©orique maximale en utilisant le calcul parallĂšle est de 20 fois.

La loi d'Amdahl peut ĂȘtre formulĂ©e de la façon suivante :

oĂč

  • Slatence est l'accĂ©lĂ©ration thĂ©orique en latence de l'exĂ©cution de toute la tĂąche ;
  • s est le nombre de fils d'exĂ©cutions (threads) utilisĂ©s pour exĂ©cuter la tĂąche
  • p est le pourcentage du temps d'exĂ©cution de toute la tĂąche concernant la partie bĂ©nĂ©ficiant de l'amĂ©lioration des ressources du systĂšme avant l'amĂ©lioration.

De plus,

montrent que l'accélération théorique de l'exécution de toute la tùche augmente avec l'amélioration des ressources du systÚme et que, quelle que soit l'amélioration, l'accélération théorique est toujours limitée par la partie de la tùche qui ne peut tirer profit de l'amélioration.

La loi d'Amdahl est souvent utilisĂ©e en calcul parallĂšle pour prĂ©dire l'accĂ©lĂ©ration thĂ©orique lors de l'utilisation de plusieurs processeurs. Par exemple, si un programme a besoin de 20 heures d'exĂ©cution sur un processeur uni-cƓur et qu'une partie du programme qui requiert une heure d'exĂ©cution ne peut pas ĂȘtre parallĂ©lisĂ©e, mĂȘme si les 19 heures (p = 95 %) d'exĂ©cution restantes peuvent ĂȘtre parallĂ©lisĂ©es, quel que soit le nombre de processeurs utilisĂ©s pour l'exĂ©cution parallĂšle du programme, le temps d'exĂ©cution minimal ne pourra passer sous cette heure critique. Ainsi, l'accĂ©lĂ©ration thĂ©orique est limitĂ©e au plus Ă  20 (1/(1 − p) = 20).

On en dĂ©duit deux rĂšgles : premiĂšrement, lors de l'Ă©criture d'un programme parallĂšle, il faut limiter autant que possible la partie sĂ©rielle ; deuxiĂšmement, un ordinateur parallĂšle doit ĂȘtre un excellent ordinateur sĂ©riel pour traiter le plus rapidement possible la partie sĂ©rielle.

DĂ©monstration

Une tĂąche exĂ©cutĂ©e par un systĂšme dont les ressources sont amĂ©liorĂ©es par rapport Ă  un systĂšme similaire initial peut ĂȘtre sĂ©parĂ©e en deux parties :

  • une partie ne bĂ©nĂ©ficiant pas de l'amĂ©lioration des ressources du systĂšme ;
  • une partie bĂ©nĂ©ficiant de l'amĂ©lioration des ressources du systĂšme.

Exemple. — Un programme informatique qui traite les fichiers d'un disque. Une partie du programme commence par lire le rĂ©pertoire du disque et crĂ©er une liste de fichiers en mĂ©moire. Puis une autre partie du programme passe chaque fichier Ă  un fil d'exĂ©cution pour traitement. La partie qui lit le rĂ©pertoire et crĂ©e la liste de fichiers ne peut pas ĂȘtre accĂ©lĂ©rĂ©e sur un ordinateur parallĂšle, mais la partie qui traite les fichiers peut l'ĂȘtre.

Le temps d'exĂ©cution de toute la tĂąche avant l'amĂ©lioration des ressources est notĂ© T. Il inclut le temps d'exĂ©cution de la partie ne bĂ©nĂ©ficiant pas de l'amĂ©lioration des ressources et le temps d'exĂ©cution de celle en bĂ©nĂ©ficiant. Le pourcentage du temps d'exĂ©cution de toute la tĂąche concernant la partie bĂ©nĂ©ficiant de l'amĂ©lioration des ressources avant l'amĂ©lioration des ressources est notĂ© p. Celui concernant la partie n'en bĂ©nĂ©ficiant pas est donc 1 − p. Il vient

C'est l'exécution de la partie bénéficiant de l'amélioration des ressources qui est accélérée d'un facteur s aprÚs l'amélioration des ressources. Par conséquent, le temps d'exécution de la partie n'en bénéficiant pas reste identique, tandis que celui de la partie en bénéficiant devient

Le temps d'exécution théorique T(s) de toute la tùche aprÚs l'amélioration des ressources est ainsi

La loi d'Amdahl exprime l'accélération théorique en latence de l'exécution de toute la tùche à charge d'exécution constante C, ce qui donne

Estimation de p

p peut ĂȘtre estimĂ© Ă  partir de l'accĂ©lĂ©ration mesurĂ©e Slatence(s) = T/T(s) de toute la tĂąche par un systĂšme amĂ©liorĂ© possĂ©dant une accĂ©lĂ©ration spĂ©cifique s de l'exĂ©cution de la partie de la tĂąche bĂ©nĂ©ficiant de l'amĂ©lioration du systĂšme, en utilisant

EstimĂ© de cette façon, p peut ĂȘtre utilisĂ© dans la loi d'Amdahl pour prĂ©dire l'accĂ©lĂ©ration thĂ©orique pour une accĂ©lĂ©ration s quelconque de l'exĂ©cution de la partie de la tĂąche bĂ©nĂ©ficiant de l'amĂ©lioration du systĂšme.

Un rendement parfois décevant

Les autres cas se montrent décevants : pour p = 50 %, le passage à un biprocesseur fait gagner 25 % de temps. Le passage à 12 processeurs fait passer ce gain de temps à 46 %.

Note. — La loi d'Amdahl est considĂ©rĂ©e ici dans le cas d'un systĂšme oĂč tous les processeurs sont consacrĂ©s au mĂȘme utilisateur, et Ă  des threads du mĂȘme processus. Ce cas ne se rencontre pas toujours. Dans la pratique, les rĂ©sultats seront bien plus mauvais encore si l'on ne gĂšre pas l'affinitĂ© processeur qui veille Ă  ce que les mĂȘmes processeurs reprennent dans la mesure du possible les mĂȘmes processus, afin d'Ă©viter des rechargements intempestifs de cache.

Augmentation de p

Un cas oĂč p se retrouve Ă©videmment voisin de 100 % est celui oĂč les processeurs exĂ©cutent des programmes diffĂ©rents : Ă©tant indĂ©pendants, ils sont ipso facto parallĂ©lisables, et de surcroĂźt sans le moindre effort Ă  entreprendre pour assurer cette parallĂ©lisation. Les problĂšmes restent Ă  ce stade que :

  • le temps Ă©coulĂ© pour une application donnĂ©e n'est pas directement rĂ©duit : une simulation de quatre heures continuera Ă  faire attendre quatre heures ses rĂ©sultats (mais sera moins ralentie par les autres processus si elle revendique qu'un processeur lui soit dĂ©diĂ© en propre) ;
  • l'antĂ©mĂ©moire et le cache disque se retrouvent plus encombrĂ©s de donnĂ©es appartenant Ă  des processus diffĂ©rents, et il faut prĂ©voir leur augmentation de taille en consĂ©quence. Le problĂšme disparaĂźt pour l'antĂ©mĂ©moire lorsque celle-ci se trouve sur le microprocesseur lui-mĂȘme, ce qui rĂšgle du mĂȘme coup les effets d'Ă©chelle.

Autre loi d'Amdahl

Une loi plus ancienne d'Amdahl concernait un Ă©quilibre observĂ© empiriquement dans les ordinateurs : « Une instruction par seconde requiert un octet de mĂ©moire et un bit par seconde de capacitĂ© d'entrĂ©e–sortie. » De fait, cette loi semble ĂȘtre restĂ©e valable assez longtemps (100 MIPS, 100 Mo de mĂ©moire vive et 100 Mb/s s'observaient vers 2000 et les rĂ©seaux gigabit ont commencĂ© Ă  se rĂ©pandre Ă  peu prĂšs en mĂȘme temps que les mĂ©moires de 1 Go).

Limitations

La loi d'Amdahl est trĂšs gĂȘnante pour le parallĂ©lisme. Elle indique que la performance d'un systĂšme ne dĂ©pend pas seulement du nombre de ressources mises en parallĂšle et de surcroĂźt, elle dĂ©signe la partie sĂ©rielle comme le facteur limitant. Et la limite est sĂ©vĂšre car il est trĂšs difficile de parallĂ©liser 90 % d'un programme. La loi de Gustafson modĂšre les conclusions de la loi d'Amdahl.

Références

  • (en) Gene Amdahl, Validity of the Single Processor Approach to Achieving Large-Scale Computing Capabilities, AFIPS Conference Proceedings, (30), p. 483-485, 1967.
  • (en) John L. Hennessy et David A. Paterson, Computer Architecture: A Quantitative Approach, 2nd edition, 1996, p. 29-32. (ISBN 1-55860-329-8)
  • [PDF] (en) Mark D. Hill, Michael R. Marty, « Amdahl’s Law in the Multicore Era »

Voir aussi

Articles connexes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.