Connectez-vous via MCP →

Entrez le calcul

Formule

Publicité

Résultats

Accélération globale
3,077×
fois plus rapide que la version d'origine
Theoretical maximum speedup (s → ∞) 10×
Efficacité parallÚle 76,92%

Qu'est-ce que la loi d'Amdahl ?

ÉnoncĂ©e en 1967 par l'architecte informatique Gene Amdahl, la loi d'Amdahl prĂ©dit l'accĂ©lĂ©ration thĂ©orique maximale d'une tĂąche lorsqu'une partie seulement de celle-ci peut ĂȘtre parallĂ©lisĂ©e. Pierre angulaire du calcul parallĂšle, elle aide les ingĂ©nieurs Ă  fixer des attentes rĂ©alistes avant d'investir dans davantage de processeurs, de cƓurs ou de threads.

Schéma montrant une tùche divisée en une partie séquentielle et une partie parallÚle traitée sur plusieurs processeurs
La loi d'Amdahl divise un programme en une partie séquentielle et une partie parallÚle répartissable entre les processeurs.

Comment utiliser ce calculateur

Renseignez deux valeurs : la fraction parallĂšle (p) — la proportion du programme (comprise entre 0 et 1) qui peut s'exĂ©cuter en parallĂšle — et le facteur d'accĂ©lĂ©ration (s), gĂ©nĂ©ralement le nombre de processeurs ou de cƓurs appliquĂ©s Ă  cette partie parallĂšle. Le calculateur affiche alors l'accĂ©lĂ©ration globale, l'accĂ©lĂ©ration thĂ©orique maximale et l'efficacitĂ© parallĂšle.

La formule expliquée

L'Ă©quation s'Ă©crit $$\text{AccĂ©lĂ©ration} = \frac{1}{(1 - p) + \dfrac{p}{s}}$$ Le terme \((1 - p)\) correspond Ă  la fraction sĂ©quentielle, impossible Ă  accĂ©lĂ©rer. À mesure que \(s\) devient trĂšs grand, \(p/s\) tend vers zĂ©ro : l'accĂ©lĂ©ration plafonne donc Ă  \(1/(1 - p)\). C'est pourquoi un programme parallĂšle Ă  90 % ne pourra jamais aller plus de 10× plus vite, quel que soit le nombre de processeurs ajoutĂ©s.

Courbe de l'accélération en fonction du nombre de processeurs se stabilisant à un maximum
L'accélération augmente avec le nombre de processeurs mais plafonne à un maximum fixé par la fraction séquentielle.

Exemple concret

Supposons que 90 % d'un programme soit parallélisable (\(p = 0{,}9\)) et que vous utilisiez 4 processeurs (\(s = 4\)). Le dénominateur vaut alors $$(1 - 0{,}9) + \frac{0{,}9}{4} = 0{,}1 + 0{,}225 = 0{,}325$$ L'accélération est de \(1 / 0{,}325 \approx 3{,}08\times\). L'accélération maximale possible atteint \(1 / 0{,}1 = 10\times\), et l'efficacité s'élÚve à \(3{,}08 / 4 \approx 76{,}9\,\%\).

Interprétation de votre résultat

L'accĂ©lĂ©ration globale est ce que vous obtenez rĂ©ellement avec le nombre de processeurs \(s\) que vous avez saisi — par exemple, un rĂ©sultat de 4,71× signifie que le programme parallĂ©lisĂ© s'exĂ©cute environ 4,71 fois plus rapidement que la version monoprocesseur. L'accĂ©lĂ©ration maximale, \(1/(1-p)\), est le plafond absolu que vous approcheriez avec infiniment de processeurs. L'Ă©cart entre les deux vous indique combien d'espace vous reste : si votre accĂ©lĂ©ration globale est dĂ©jĂ  proche du maximum, l'ajout de matĂ©riel aidera Ă  peine.

L'efficacitĂ© rĂ©pond Ă  la question « Ă  quel point j'utilise bien les processeurs que je paye ? » Une efficacitĂ© proche de 100 % signifie que chaque processeur contribue pratiquement Ă  une unitĂ© complĂšte d'accĂ©lĂ©ration — une excellente utilisation des ressources. Une faible efficacitĂ© (disons, moins de 30 %) signifie que la plupart des processeurs sont inactifs ou attendent la partie sĂ©rie, vous payez donc pour du matĂ©riel qui fait peu de travail utile.

La fraction sĂ©rie \(1-p\) est la limite dĂ©cisive. MĂȘme une petite fraction sĂ©rie limite fortement les performances : Ă  \(p=0,95\) le plafond n'est que de 20×, donc au-delĂ  d'environ 16–32 processeurs, chaque nouveau processeur ajoute presque rien. Une rĂšgle pratique est d'arrĂȘter d'ajouter des processeurs une fois que l'efficacitĂ© baisse en dessous de votre seuil acceptable (souvent 50–70 % pour un travail sensible aux coĂ»ts), car au-delĂ  de ce point vous dĂ©pensez de l'argent pour des gains qui s'amenuisent. Pour augmenter le plafond, vous devez rĂ©duire la fraction sĂ©rie elle-mĂȘme — les modifications algorithmiques qui augmentent \(p\) rapportent gĂ©nĂ©ralement beaucoup plus que simplement ajouter des cƓurs.

Termes clés et variables

  • Fraction parallĂšle (\(p\)) — la proportion du travail du programme qui peut ĂȘtre exĂ©cutĂ©e en parallĂšle, exprimĂ©e en nombre dĂ©cimal entre 0 et 1. Une valeur de 0,9 signifie que 90 % de la charge de travail peut ĂȘtre rĂ©partie entre les processeurs.
  • Fraction sĂ©rie (\(1-p\)) — la portion qui doit s'exĂ©cuter sĂ©quentiellement sur un seul processeur et ne peut pas ĂȘtre accĂ©lĂ©rĂ©e par parallĂ©lisation. Cette fraction fixe la limite supĂ©rieure absolue sur l'accĂ©lĂ©ration globale.
  • AccĂ©lĂ©ration de la partie parallĂšle (\(s\)) — le facteur par lequel la portion parallĂ©lisable est accĂ©lĂ©rĂ©e, gĂ©nĂ©ralement Ă©gal au nombre de processeurs ou de cƓurs qui y sont appliquĂ©s.
  • AccĂ©lĂ©ration globale — le rapport du temps d'exĂ©cution monoprocesseur au temps d'exĂ©cution parallĂšle, \(1/\big((1-p)+p/s\big)\). C'est le gain de performance dans le monde rĂ©el.
  • AccĂ©lĂ©ration maximale — la limite thĂ©orique \(1/(1-p)\) atteinte Ă  mesure que \(s\) croĂźt sans limite, dĂ©terminĂ©e uniquement par la fraction sĂ©rie.
  • EfficacitĂ© parallĂšle — accĂ©lĂ©ration globale divisĂ©e par le nombre de processeurs, \(\text{AccĂ©lĂ©ration}/s\), exprimĂ©e en pourcentage ; elle mesure l'efficacitĂ© avec laquelle chaque processeur est utilisĂ©.

FAQ

Pourquoi ajouter des processeurs offre-t-il des gains décroissants ? Parce que la partie séquentielle devient le goulet d'étranglement. DÚs qu'elle prédomine, les processeurs supplémentaires n'apportent presque plus rien.

Qu'est-ce que l'efficacité parallÚle ? C'est l'accélération divisée par le nombre de processeurs, exprimée en pourcentage : elle mesure à quel point chaque processeur est réellement exploité.

En quoi cela diffÚre-t-il de la loi de Gustafson ? La loi d'Amdahl suppose une taille de problÚme fixe ; la loi de Gustafson, elle, considÚre que le problÚme grandit avec le nombre de processeurs, ce qui donne des résultats plus optimistes.

DerniĂšre mise Ă  jour: