Qu'est-ce que la loi d'Amdahl ?
ĂnoncĂ©e en 1967 par l'architecte informatique Gene Amdahl, la loi d'Amdahl prĂ©dit le gain de vitesse thĂ©orique maximal d'une tĂąche lorsqu'une partie seulement de celle-ci peut ĂȘtre parallĂ©lisĂ©e. Pilier du calcul parallĂšle, elle aide les ingĂ©nieurs Ă dĂ©terminer s'il vaut la peine d'ajouter des processeurs, des cĆurs ou des threads supplĂ©mentaires. L'idĂ©e centrale est que la portion sĂ©quentielle (non parallĂ©lisable) d'un programme finit toujours par limiter sa vitesse d'exĂ©cution, quelles que soient les ressources allouĂ©es Ă la portion parallĂšle.
Comment utiliser ce calculateur
Renseignez deux valeurs : la portion parallĂ©lisable de votre programme, exprimĂ©e en pourcentage (la part du travail rĂ©partissable entre plusieurs processeurs), et l'accĂ©lĂ©ration de la partie parallĂšle, qui correspond gĂ©nĂ©ralement au nombre de processeurs ou de cĆurs qui l'exĂ©cutent. Le calculateur affiche l'accĂ©lĂ©ration globale, l'accĂ©lĂ©ration thĂ©orique maximale dans l'hypothĂšse d'une accĂ©lĂ©ration parallĂšle infinie, ainsi que l'efficacitĂ© parallĂšle.
La formule expliquée
L'équation s'écrit
$$\text{Acc\'el\'eration} = \dfrac{1}{(1 - p) + \dfrac{p}{s}}$$oĂč p dĂ©signe la fraction parallĂšle (comprise entre 0 et 1) et s l'accĂ©lĂ©ration appliquĂ©e Ă cette fraction. Le terme \((1 - p)\) reprĂ©sente la part sĂ©quentielle, impossible Ă accĂ©lĂ©rer. Lorsque s tend vers l'infini, l'accĂ©lĂ©ration converge vers \(\dfrac{1}{1-p}\), le plafond absolu imposĂ© par la portion sĂ©quentielle.
Exemple concret
Supposons que 90 % d'un programme soit parallélisable (\(p = 0{,}9\)) et que vous l'exécutiez sur 8 processeurs (\(s = 8\)). Le dénominateur vaut alors
$$(1 - 0{,}9) + \frac{0{,}9}{8} = 0{,}1 + 0{,}1125 = 0{,}2125$$soit une accĂ©lĂ©ration de \(\dfrac{1}{0{,}2125} \approx 4{,}71\times\). MĂȘme avec un nombre infini de processeurs, l'accĂ©lĂ©ration maximale n'atteint que \(\dfrac{1}{0{,}1} = 10\times\), ce qui illustre comment les 10 % de portion sĂ©quentielle plafonnent les performances.
Interprétation de vos résultats
La valeur d'accĂ©lĂ©ration vous indique combien de fois plus rapidement le programme s'exĂ©cute avec \(s\) processeurs par rapport Ă une exĂ©cution sur un seul processeur. Une accĂ©lĂ©ration de 4Ă signifie que la charge de travail parallĂ©lisĂ©e s'achĂšve en un quart du temps initial. Comme la loi d'Amdahl suppose une taille de problĂšme fixe, l'accĂ©lĂ©ration est limitĂ©e par la fraction sĂ©rie \(1-p\) qui ne peut pas ĂȘtre accĂ©lĂ©rĂ©e.
Le plafond des processeurs illimitĂ©s, \(1/(1-p)\), est l'accĂ©lĂ©ration maximale rĂ©alisable avec un matĂ©riel illimitĂ©. Par exemple, si 95% du travail est parallĂšle, le plafond est \(1/(1-0.95) = 20\times\); mĂȘme un million de cĆurs ne peuvent pas dĂ©passer 20Ă. C'est le chiffre unique le plus important pour la planification : il fixe la limite supĂ©rieure de tout investissement dans des processeurs supplĂ©mentaires.
L'efficacitĂ© parallĂšle mesure la façon dont les processeurs sont utilisĂ©s et est dĂ©finie comme l'accĂ©lĂ©ration divisĂ©e par le nombre de processeurs, \(\text{efficacitĂ©} = \text{AccĂ©lĂ©ration}/s\). Une efficacitĂ© de 1,0 (100%) reprĂ©sente une mise Ă l'Ă©chelle linĂ©aire parfaite ; en pratique, elle diminue quand vous ajoutez des cĆurs. Par exemple, un code parallĂšle Ă 90% sur 8 cĆurs donne une accĂ©lĂ©ration de 4,71Ă, donc l'efficacitĂ© est \(4,71/8 \approx 59\%\) â chaque cĆur supplĂ©mentaire effectue progressivement moins de travail utile.
Ajouter des processeurs cesse d'ĂȘtre rentable quand l'accĂ©lĂ©ration marginale par cĆur supplĂ©mentaire devient faible relativement Ă son coĂ»t et quand l'efficacitĂ© tombe en dessous d'un seuil acceptable (souvent 50â70% en pratique). Une fois que l'accĂ©lĂ©ration approche de son plafond, du matĂ©riel supplĂ©mentaire n'apporte presque rien. Pour relever le plafond lui-mĂȘme, vous devez rĂ©duire la fraction sĂ©rie â en parallĂ©lisant davantage l'algorithme ou en rĂ©duisant la synchronisation et les entrĂ©es/sorties â plutĂŽt que d'acheter plus de cĆurs. Notez Ă©galement que la loi d'Amdahl ignore les frais gĂ©nĂ©raux de communication et de coordination, donc les accĂ©lĂ©rations rĂ©elles sont gĂ©nĂ©ralement infĂ©rieures Ă ces maxima thĂ©oriques.
FAQ
Pourquoi doubler le nombre de processeurs ne double-t-il pas la vitesse ? Parce que la portion sĂ©quentielle s'exĂ©cute toujours Ă la mĂȘme vitesse, quel que soit le nombre de processeurs : son temps de traitement devient alors le goulot d'Ă©tranglement dominant.
Qu'est-ce que l'efficacitĂ© parallĂšle ? Il s'agit de l'accĂ©lĂ©ration divisĂ©e par le nombre de processeurs, exprimĂ©e en pourcentage â une mesure de la bonne exploitation des ressources ajoutĂ©es.
En quoi diffĂšre-t-elle de la loi de Gustafson ? La loi de Gustafson part du principe que la taille du problĂšme croĂźt avec le nombre de processeurs, offrant souvent une perspective plus optimiste que le modĂšle Ă charge de travail fixe d'Amdahl.