Loi d'Amdahl
Amdahl-François-Dominique.png
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 :
- du nombre de processeurs N
- de la proportion d'activité parallélisable s
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 :
R = 1/((1-s) + (s/N))
Un rendement parfois décevant
- Certaines applications comme le traitement d'image tirent un très bon parti du parallélisme. s, dans leur cas, peut se retrouver voisin de 0,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 parallisable).
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%.
Un moyen de faire remonter s
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 :
- 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.
Une 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/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).
