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.
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
- Certaines applications comme le traitement d'image tirent un trÚs bon parti du parallélisme. Dans leur cas, p peut se retrouver voisin de 95 %.
- D'autres comme l'analyse numérique pourront tirer profit d'un changement d'algorithme (par exemple le remplacement d'une méthode de Gauss-Seidel par une méthode de Jacobi qui converge plus lentement, mais est totalement parallélisable).
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 »