Amdahls Gesetz

Im Rechnerarchitektur, Amdahls Gesetz (oder Amdahls Argument[1]) ist eine Formel, die die theoretische gibt beschleunigen in Latenz der Ausführung einer Aufgabe bei festen Arbeitsbelastung Dies ist von einem System zu erwarten, dessen Ressourcen verbessert werden. Insbesondere heißt es, dass "die durch Optimierung eines einzelnen Teils eines Systems gewonnene Gesamtleistungsverbesserung durch den Bruchteil der Zeit begrenzt ist, in dem der verbesserte Teil tatsächlich verwendet wird".[2][Seite benötigt] Es ist nach nach Informatiker Gene Amdahlund wurde am vorgestellt Afips Spring Joint Computer Conference im Jahr 1967.
Amdahls Gesetz wird oft in verwendet Parallele Computing Um die theoretische Beschleunigung bei der Verwendung mehrerer Prozessoren vorherzusagen. Wenn beispielsweise ein Programm 20 Stunden mit einem einzelnen Thread abgeschlossen ist, aber ein einstündiger Teil des Programms nicht parallelisiert werden kann, kann dies nur die verbleibenden 19 Stunden “(p = 0,95) Die Ausführungszeit kann parallelisiert werden, unabhängig davon, wie viele Themen einer parallelisierten Ausführung dieses Programms gewidmet sind, kann die Mindestausführungszeit nicht weniger als eine Stunde betragen. Daher ist die theoretische Beschleunigung auf die 20 -fache der einzelnen Fadenleistung beschränkt. .
Definition
Amdahls Gesetz kann auf folgende Weise formuliert werden:[3]
wo
- SLatenz ist die theoretische Beschleunigung der Ausführung der gesamten Aufgabe;
- s ist die Beschleunigung des Teils der Aufgabe, der von verbesserten Systemressourcen profitiert?
- p ist der Anteil der Ausführungszeit, dass der Teil, der ursprünglich von verbesserten Ressourcen profitiert, profitiert.
Außerdem,
zeigt, dass die theoretische Beschleunigung der Ausführung der gesamten Aufgabe mit der Verbesserung der Ressourcen des Systems zunimmt und dass die theoretische Beschleunigung unabhängig von der Größe der Verbesserung immer durch den Teil der Aufgabe begrenzt ist, das nicht von der Verbesserung profitieren kann .
Amdahls Gesetz gilt nur für die Fälle, in denen die Problemgröße festgelegt ist. In der Praxis werden in der Praxis, wenn mehr Computerressourcen verfügbar werden, tendenziell für größere Probleme (größere Datensätze) verwendet, und die Zeit, die im parallelisierbaren Teil verbracht wird, wird häufig viel schneller als die von Natur aus serielle Arbeit. In diesem Fall, Gustafsons Gesetz Gibt eine weniger pessimistische und realistischere Bewertung der parallelen Leistung.[4]
Ableitung
Eine von einem System ausgeführte Aufgabe, deren Ressourcen im Vergleich zu einem anfänglichen ähnlichen System verbessert werden, kann in zwei Teile aufgeteilt werden:
- ein Teil, der nicht von der Verbesserung der Ressourcen des Systems profitiert;
- Ein Teil, der von der Verbesserung der Ressourcen des Systems profitiert.
Ein Beispiel ist ein Computerprogramm, das Dateien verarbeitet. Ein Teil dieses Programms kann das Verzeichnis der Festplatte scannen und eine Liste von Dateien intern im Speicher erstellen. Danach übergibt ein weiterer Teil des Programms jede Datei an eine separate Faden zum Bearbeiten. Der Teil, der das Verzeichnis scannt und die Dateiliste erstellt, kann nicht auf einem parallelen Computer beschleunigt werden, aber der Teil, der die Dateien verarbeitet.
Die Ausführungszeit der gesamten Aufgabe vor der Verbesserung der Ressourcen des Systems wird als bezeichnet als . Es umfasst die Ausführungszeit des Teils, der nicht von der Verbesserung der Ressourcen und der Ausführungszeit desjenigen profitieren würde, der davon profitieren würde. Der Anteil der Ausführungszeit der Aufgabe, die von der Verbesserung der Ressourcen profitieren würde . Derjenige, der den Teil betrifft, der nicht davon profitieren würde, ist daher . Dann:
Es ist die Ausführung des Teils, der von der Verbesserung der Ressourcen profitiert, die durch den Faktor beschleunigt wird Nach der Verbesserung der Ressourcen. Folglich bleibt die Ausführungszeit des Teils, der nicht davon profitiert, gleich, während der Teil, der davon profitiert, wird:
Die theoretische Ausführungszeit der gesamten Aufgabe nach der Verbesserung der Ressourcen ist damals:
Amdahls Gesetz gibt das theoretische beschleunigen in Latenz der Ausführung der gesamten Aufgabe bei fester Arbeitsbelastung , was ergibt
Parallelprogramme
Wenn 30% der Ausführungszeit Gegenstand einer Beschleunigung sein können, p wird 0,3 sein; Wenn die Verbesserung den betroffenen Teil doppelt so schnell macht, s wird 2. Amdahls Gesetz besagt, dass die Gesamtbeschleunigung der Verbesserung sein wird:
Nehmen wir beispielsweise an, dass wir eine serielle Aufgabe erhalten, die in vier aufeinanderfolgende Teile unterteilt ist, deren Prozentsätze der Ausführungszeit sind p1 = 0,11, p2 = 0,18, p3 = 0,23, und p4 = 0,48 beziehungsweise. Dann wird uns gesagt, dass der 1. Teil nicht beschleunigt ist, also s1 = 1, während der 2. Teil 5 Mal beschleunigt ist s2 = 5Der dritte Teil wird 20 Mal beschleunigt, also s3 = 20und der 4. Teil ist 1,6 Mal beschleunigt, also s4 = 1,6. Durch die Verwendung von Amdahlschen Gesetz
Beachten Sie, wie die 5 -mal- und 20 -fache Beschleunigung auf dem 2. bzw. 3. Teilen keine große Auswirkung auf die Gesamtbeschläge haben, wenn der 4. Teil (48% der Ausführungszeit) nur um das 1,6 -fache beschleunigt wird.
Serienprogramme

Zum Beispiel mit einem seriellen Programm in zwei Teilen A und B für welche TA = 3 s und TB = 1 sAnwesend
- Wenn Teil B wird 5 -mal schneller laufen, das heißt s = 5 und p = TB/(TA + TB) = 0,25, dann
- Wenn Teil A wird 2 -mal schneller laufen, das heißt s = 2 und p = TA/(TA + TB) = 0,75, dann
Daher Teil machen A 2 -mal schneller zu laufen ist besser als Teil zu machen B 5 -mal schneller laufen. Die prozentuale Geschwindigkeitsverbesserung kann berechnet werden als
- Teil verbessern A Um den Faktor 2 erhöht die Gesamtprogrammgeschwindigkeit um den Faktor 1,60, was es um 37,5% schneller macht als die ursprüngliche Berechnung.
- Teil des Teils jedoch verbessert B Um den Faktor 5, der vermutlich mehr Aufwand erfordert, wird nur ein Geschwindigkeitsfaktor von 1,25 erreicht, was es 20% schneller macht.
Optimierung des sequentiellen Teils der parallelen Programme
Wenn der nicht parallelisierbare Teil durch den Faktor von optimiert wird , dann
Aus dem Amdahlschen Gesetz folgt, dass die Beschleunigung aufgrund von Parallelität gegeben wird durch
Wann , wir haben Dies bedeutet, dass die Beschleunigung in Bezug auf die Ausführungszeit gemessen wird, nachdem der nicht parallelisierbare Teil optimiert wurde.
Wann Anwesend
Wenn , und , dann:
Transformation sequentielle Teile paralleler Programme in parallelisierbar
Als nächstes betrachten wir den Fall, in dem der nicht parallelisierbare Teil um einen Faktor von reduziert wird und der parallelisierbare Teil wird entsprechend erhöht. Dann
Aus dem Amdahlschen Gesetz folgt, dass die Beschleunigung aufgrund von Parallelität gegeben wird durch
Die obige Ableitung stimmt mit der Analyse von Jakob Jenkov über die Ausführungszeit im Vergleich zu beschleunigten Kompromisse überein.[5]
Verhältnis zum Gesetz der Rückgabe von Renditen
Amdahls Gesetz wird oft mit dem in Verbindung gebracht Gesetz des abnehmenden ErtragsWährend nur ein Sonderfall der Anwendung von Amdahls Gesetz dem Gesetz der Verringerung der Renditen zeigt. Wenn man optimal (in Bezug auf die erreichte Beschleunigung) wählt, was zu verbessert werden soll, wird sich die monotoner Verbesserungen im Zusammenhang mit der Verbesserung monoton verringern. Wenn man jedoch nicht optimal wählt, kann nach Verbesserung einer suboptimalen Komponente und der Weiterentwicklung einer optimaleren Komponente eine Erhöhung der Rendite feststellen. Beachten Sie, dass es oft rational ist, ein System in einer Reihenfolge zu verbessern, die in diesem Sinne "nicht optimal" ist, da einige Verbesserungen schwieriger sind oder eine größere Entwicklungszeit erfordern als andere.
Das Amdahl-Gesetz repräsentiert das Gesetz der Rückgangsrendite, wenn man überlegt, welche Art von Rückgabe man erzielt, indem er mehr Prozessoren zu einer Maschine hinzufügt. Wenn man eine Berechnung mit fester Größe ausführt, die alle verfügbaren Prozessoren zu ihrer Kapazität verwendet. Jeder neue Prozessor, der dem System hinzugefügt wurde, fügt weniger nutzbare Leistung als der vorherige hinzu. Jedes Mal, wenn man die Anzahl der Prozessoren verdoppelt, nimmt das Beschleunigungsverhältnis ab, da der Gesamtdurchsatz in Richtung der Grenze von 1/(1 -p).
Diese Analyse vernachlässigt andere potenzielle Engpässe wie z. Speicherbandbreite und I/O -Bandbreite. Wenn diese Ressourcen nicht mit der Anzahl der Prozessoren skaliert werden, bietet das Hinzufügen von Prozessoren lediglich noch geringere Renditen.
Eine Implikation des Amdahlschen Gesetz Heterogenes Computer Techniken sind erforderlich.[6] Es gibt neue Modelle zur Geschwindigkeits- und Energieverbrauchsmodelle, die auf einer allgemeineren Darstellung der Heterogenität basieren, die als normale Formheterogenität bezeichnet wird und die einen breiten Bereich heterogener vieler Kernarchitekturen unterstützen. Diese Modellierungsmethoden zielen darauf ab, die Effizienz und die Leistungsbereiche der Systemleistung vorherzusagen und Forschung und Entwicklung auf Hardware- und Systemsoftwareebene zu erleichtern.[7][8]
Siehe auch
Verweise
- ^ Rodgers, David P. (Juni 1985). "Verbesserungen des Multiprozessor -Systemdesigns". ACM Sigarch Computer Architecture News. New York, NY, USA: ACM. 13 (3): 225–231 [p. 226]. doi:10.1145/327070.327215. ISBN 0-8186-0634-7. ISSN 0163-5964. S2CID 7083878.
- ^ Reddy, Martin (2011). API -Design für C ++. Burlington, Massachusetts: Morgan Kaufmann Publishers. doi:10.1016/c2010-0-65832-9. ISBN 978-0-12-385003-4. Lccn 2010039601. OCLC 666246330.
- ^ Bryant, Randal E.; David, O'Hallaron (2016), Computersysteme: Perspektive eines Programmierers (3 ed.), Pearson Education, p. 58, ISBN 978-1-488-67207-1
- ^ McCool, Michael; Reinsers, James; Robison, Arch (2013). Strukturierte parallele Programmierung: Muster für eine effiziente Berechnung. Elsevier. p. 61. ISBN 978-0-12-415993-8.
- ^ "Amdahls Gesetz".
- ^ Hill, Mark D.; Marty, Michael R. (2008). "Amdahls Gesetz in der Multicore -Ära". Computer. 41 (7): 33–38. doi:10.1109/mc.2008.209.
- ^ Rafiev, Ashur; Al-Hayanni, Mohammed A. N.; Xia, Fei; Shafik, Rishad; Romanovsky, Alexander; Yakovlev, Alex (2018-07-01). "Geschwindigkeits- und Leistungsskalierungsmodelle für heterogene viele Kernsysteme". IEEE-Transaktionen auf mehrstufigen Computersystemen. 4 (3): 436–449. doi:10.1109/tmscs.2018.2791531. ISSN 2332-7766.
- ^ Al -Hayanni, Mohammed A. Noaman; Xia, Fei; Rafiev, Ashur; Romanovsky, Alexander; Shafik, Rishad; Yakovlev, Alex (Juli 2020). "Amdahls Gesetz im Zusammenhang mit heterogenen vielen Kernsystemen - einer Umfrage". IET -Computer und digitale Techniken. 14 (4): 133–148. doi:10.1049/iet-cdt.2018.5220. ISSN 1751-8601.
Weitere Lektüre
- Amdahl, Gene M. (1967). "Gültigkeit des einzelnen Prozessoransatzes zur Erreichung großer Computerfunktionen" (PDF). AFIPS -Konferenzverfahren (30): 483–485. doi:10.1145/1465482.1465560.
Externe Links
- "Parallele Programmierung: Wenn Amdahls Gesetz nicht anwendbar ist?". 2011-06-25. Archiviert von das Original Am 2013-04-14. Abgerufen 2011-06-26.
- Gene M. Amdahl (1989), Oral History Interview mit Gene M. Amdahl, Charles Babbage Institute, Universität von Minnesota, HDL:11299/104341. Amdahl diskutiert seine Absolventen an der Universität von Wisconsin und seine Gestaltung von Wisc. Erörtert seine Rolle bei der Gestaltung mehrerer Computer für IBM, einschließlich der STRECKEN, IBM 701, und IBM 704. Er bespricht seine Arbeit mit Nathaniel Rochester und IBMs Management des Designprozesses. Erwähnt mit Ramo-wooldridge, Aeronutronisch, und Computer Sciences Corporation
- Amdahls Gesetz: Nicht alle Leistungsverbesserungen werden gleich geschaffen (2007)
- "Amdahls Gesetz" von Joel F. Klein, Wolfram Demonstrationsprojekt (2007)
- Amdahls Gesetz in der Multicore -Ära (Juli 2008)
- Was zum Teufel $@! Ist die Parallelität sowieso? (Charles Leiser, Mai 2008)
- Bewertung der Intel Core i7 Turbo Boost -Funktion, von James Charles, Preet Jassi, Ananth Narayan S., Abbas Sadat und Alexandra Fedorova (2009)
- Berechnung der Beschleunigung paralleler Programme als Funktion der Anzahl der Threads, von George Popov, Valeri Mladenov und Nikos Mastorakis (Januar 2010)
- Danny Hillis - Nachweis am Amdahls Gesetz falsch, Video im Oktober 2016 aufgezeichnet