Amdahls Gesetz gilt nicht für parallele Computer. Es gilt für sie und es ist entscheidend, um ihre Grenzen zu verstehen. Das Missverständnis beruht wahrscheinlich von Menschen, die hoffen, eine unbegrenzte Beschleunigung der Parallelisierung zu erreichen. Amdahls Gesetz zeigt, dass dies unmöglich ist.
Das Gesetz von Amdahl besagt, dass die durch Parallelisierung eines Programms erreichbare maximale Beschleunigung durch den Teil des Programms begrenzt ist, das * nicht parallelisiert werden kann. Lassen Sie es uns aufschlüsseln:
* Serienabschnitt: Einige Teile eines Programms erfordern von Natur aus eine sequenzielle Ausführung. Beispielsweise kann eine einzelne Schleife, die vom Ergebnis der vorherigen Iteration abhängt, nicht effektiv parallelisiert werden. Dies ist der Bruchteil des Programms, der sequentiell bleibt und oft als „F“ bezeichnet wird.
* Paralleler Teil: Dies ist der Bruchteil des Programms, das * parallelisiert werden kann, (1 - f).
* Anzahl der Prozessoren: 'n' repräsentiert die Anzahl der verwendeten Prozessoren.
Amdahls Rechtsformel:
Geschwindigkeit =1 / (f + (1 - f) / n)
Warum es für parallele Computer relevant ist:
Unabhängig davon, wie viele Prozessoren ('n') Sie hinzufügen, wenn auch ein kleiner Teil des Programms ('F') von Natur aus sequentiell ist, wird die Beschleunigung begrenzt. Zum Beispiel:
* Wenn 10% des Programms sequentiell sind (F =0,1), beträgt die maximale Beschleunigung auch bei unendlicher Anzahl von Prozessoren (n nähert es sich unendlich).
Daher geht es bei Amdahls Gesetz nicht um parallele Computer *, die nicht seinen Grundsätzen unterliegen. Es geht darum, ihre inhärenten Einschränkungen bei der Beschleunigung hervorzuheben. Eine effektive parallele Programmierung erfordert die Minimierung des sequentiellen Teils ('F'), um die Vorteile der Parallelisierung zu maximieren. Das Ignorieren von Amdahls Gesetz führt zu unrealistischen Erwartungen an die Leistungsgewinne, die durch parallele Verarbeitung erreicht werden können.