La loi d'Amdahl, énoncée par Gene Amdahl, exprime le gain de performance qu'on peut attendre d'un ordinateur en améliorant une composante de sa performance. Sous sa forme générale elle indique que le gain de performance égale le temps d'exécution d'une tâche complète sans l'amélioration divisé par le temps d'exécution de la même tâche avec l'amélioration.
Dans sa version originale, la loi d'Amdahl s'articule sur une simple règle de trois. Elle indique le gain de temps que va apporter un système multiprocesseur en fonction :
le tout en négligeant à ce stade le surcroit d'activité lié à la gestion du parallélisme lui-même. La loi a bien entendu la forme :
Avec N tendant vers l'infini, on obtient :
Ce que montre la loi d'Amdahl, c'est que la fraction du temps d'exécution qui peut tirer profit de l'amélioration limite le gain performance global, quelle que soit la valeur de l'amélioration de la composante.
Les autres cas se montrent décevants : pour s= 0,5, le passage à un biprocesseur fait gagner 25% de temps. Le passage à 12 processeurs fait passer ce gain de temps à 45,83%.
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 (processor affinity) 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.
Un cas où s se retrouve évidemment voisin de 1 est celui où les processeurs exécutent des tâches différentes : étant indépendantes, elles 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 :
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/seconde de capacité d'entrée-sortie. De fait, cette loi semble être restée valable assez longtemps (100 MIPS, 100 Mo de RAM 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).