Mit Virtuellen Maschinen
PD Stefan Bosse
Universität Bremen - FB Mathematik und Informatik
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen ::
Wie können parallele und nebenläufige Prozesse quantitativ erfasst werden?
Was kann schief gehen?
Was begrenzt die Parallelisierung?
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Zustands-Raum Diagramme
Für die Visualisierung und Analyse von nebenläufigen Prozessen und Aktionen
Zustands-Raum Diagramme beschreiben die möglichen Zustands-Entwicklungen - das temporale Verhalten - von parallelen Programmen.
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Zustands-Raum Diagramme
Computer sind endliche Zustandsautomaten. Der Zustandsübergang wird durch die Programminstruktionen hervorgerufen.
Der Zustand S eines parallelen Programms welches aus N Prozessen Pi besteht setzt sich zusammen aus folgenden Tupeln:
Die Berechnung ändert globale und lokale Variablen (Datenfluss) sowie Instruktionszeiger (Kontrollfluss) und führt zu einer Zustandsänderung comp: si → sj.
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Nebenläufige Programmierung: Zustands-Raum Diagramme
Wesentliche Zustandsänderung ist die Änderung von lokalen und globalen Speicher (Daten).
Variablen sind Bestandteil von Ausdrücken und erlauben zwei Operationen: {read,write}
var x: read(x) ⇔ RHS value(x) → ε (value(x)) write(x,v) ⇔ LHS reference(x) → x := v
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Nebenläufige Programmierung: Zustands-Raum Diagramme
Der Zugriff auf globale und somit geteilte Variablen muss atomar sein, d.h. immer nur ein Prozess kann den Wert einer Variable lesen oder einen neuen Wert schreiben.
Der parallele Zugriff auf eine geteilte Ressource muss aufgelöst werden (Konflikt): i.A. mutualer Ausschluss durch Sequenzialisierung der parallelen Zugriffe!
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Nebenläufige Programmierung: Zustands-Raum Diagramme
write(X,v1) || write(X,v2) || x3:=read(X) → write(X,v1); read(X,x3); write(X,v2) | x3=read(X); write(X,v2); write(X,v2) | ..
(WRITE(x,v1)→p1)∥(WRITE(x,v2)→p2) (WRITE(x,v1)→(WRITE(x,v2)→(p1∥p2)))|(WRITE(x,v2)→(WRITE(x,v1)→(p1∥p2)))| ..
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Nebenläufige Programmierung: Zustands-Raum Diagramme
var V1,V2,...process p1(a1,a2,...) process p2(a1,a2,...) var v1,v2,.... var v1,v2,.... Vi := ε(ai,vi,Vi) Vi := ε(ai,vi,Vi) vi := ε(ai,vi,Vi) vi := ε(ai,vi,Vi)end end
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Nebenläufige Programmierung: Zustands-Raum Diagramme
Bei einem sequenziellen Programm ist das Ergebnis einer Berechnung (d.h. die Werte aller Variablen) deterministisch allein durch die Anweisungssequenz und die Eingabedaten gegeben, und kann beliebig oft wiederholt werden - immer mit dem gleichen Ergebnis → Reihenfolge aller Anweisungen der Berechnung vorgegeben und fest
Bei einem parallelen Programm können mehrere Anweisungen verschiedener Prozesse gleichzeitig oder überlappend ausgeführt werden bzw. konkurrieren.
Die Reihenfolge parallel ausgeführter Anweisungen von einzelnen Prozessen kann hingegen undeterministisch = zufällig sein!!
Jeder der Prozesse kann als nächster den Zustand des Programms ändern.
Ein Zustands-Raum Diagramm beschreibt die Änderung des Programmzustandes als sequenzielle Auswertung aller möglichen Prozessaktivitäten.
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Nebenläufige Programmierung: Zustands-Raum Diagramme
Das Diagramm ist ein gerichteter Graph, dessen Knoten den aktuellen Programmzustand s ∈ S beschreiben, und dessen Kanten die möglichen Zustandsübergänge beschreiben.
Es gibt einen ausgewiesen Startzustand (Initialisierung) und einen oder mehrere Endzustände.
Gibt es mehrere Endzustände liegt wohl möglich ein Entwurfsfehler vor, da das Programm unterschiedliche Endergebnisse liefern kann.
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Nebenläufige Programmierung: Zustands-Raum Diagramme
Initialisiere den Startzustand sx=s0 und erzeuge Wurzel-Knoten s0 im Diagramm.
Aktueller Zustand: sx. Setze P*:=P mit P={p1,p2,..,pN} als Prozessliste und S*={}
Wähle (entferne) einen beliebigen Prozess px aus der Prozessliste P* und setze P*:= {pn| pn ∈ P* ∧ pn ∉ px}
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Nebenläufige Programmierung: Zustands-Raum Diagramme
Evaluiere die nächste Instruktion ix,n von px und berechne die Wirkung auf lokale und globale Variablen sowie den Instruktionszeiger Ix,n.
Erzeuge einen neuen Zustandsknoten sj/=x , füge ihn zur Liste S*:=S* ∪ {sj} hinzu und verbinde ihn mittels einer Kante tx→j mit dem aktuellen Ausgangszustand sx
Wiederhole Schritt 3 bis 5 für alle anderen verbleibenden Prozesse p ∈ P bis P*={}
Setze S**:=S*. Für jeden Knoten sx ∈ S** wiederhole die Schritte 2 bis 6. Iteriere Schritt 7 bis alle Prozesse terminiert sind oder keine Zustandsänderung mehr auftritt.
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Nebenläufige Programmierung: Zustands-Raum Diagramme
Sequenzielles Programm Paralleles Programmfor i := 1 to 3 do i1 process p1 for i := 1 to 3 do i1 end process p2 for j := 1 to 3 do i2 end
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Nebenläufige Programmierung: Zustands-Raum Diagramme
Beispiel und mögliche Entwicklung des Programmzustandes (lokale Var. i,j)
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Globale Ressourcen und Synchronisation
In dem bisherigen Programmiermodell gibt es nur globale Variablen als globale geteilte Ressourcen, die konkurrierend von Prozessen gelesen und verändert werden können.
Die globalen Variablen dienen dem Datenaustausch = Kommunikation zwischen den Prozessen (Shared Memory Model!).
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Globale Ressourcen und Synchronisation
t1: |X := v|
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Globale Ressourcen und Synchronisation
Zusammengesetzte Ausdrücke können aus mehreren Berechnungsschritten bestehen, so ist z. B. X := X + 1
als Ganzes nicht mehr atomar!
t1: |temp=X| t2: |X:=temp+1|⇔ |X:=X+1| ??
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Globale Ressourcen und Synchronisation
var X := 0INCR(X) DECR(X)process p1 process p2 var t:=0 var t:=0 t := X t := X X := t + 1 X := t - 1end end
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Globale Ressourcen und Synchronisation
Zustands-Raum Diagramm mit unterschiedlichen Endergebnissen (X=0,-1,1)
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Globale Ressourcen und Synchronisation
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Globale Ressourcen und Synchronisation
Nicht atomare Aktionen (Sequenz von Aktionen) mit globalen Ressourcen müssen durch Mutuale Ausschlusssynchronisation geschützt werden → Schutz von kritischen Kodebereichen ⇒ Datenkonsistenz!
Ein Semaphor S ist ein Zähler s>0 der niemals negative Werte annehmen kann.
Es gibt zwei atomare Operationen die von einer Menge von Prozessen P={p1,p2,...} auf einem Semaphor S angewendet werden können:
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Globale Ressourcen und Synchronisation
operation down(S) ∈ p: |if s > 0 then s := s - 1 else WAITERS+(S,p),block(p)|operation up(S) ∈ p: |if s = 0 and WAITERS(S) ≠ [] then pi=WAITERS-(S),unblock(pi) else s := s + 1|
Operationen der Semaphore
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Globale Ressourcen und Synchronisation
semaphore S(1)... down(S) |i1,i2,i3,..,in)| up(S) ...
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Globale Ressourcen und Synchronisation
var X := 1semaphore S := 1INCR(X) DECR(X)process p1 process p2 var t:=0 var t:=0 down(S) down(S) t := X t := X X := t + 1 X := t - 1 up(S) up(S)end end
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Globale Ressourcen und Synchronisation
Zustands-Raum Diagramm mit einem Endergebnis (X=0)
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Eigenschaften von Parallelen Systemen
Konkurrieren mehrere Prozesse um die Ressource K, so gewinnt maximal einer, die anderen verlieren den Wettbewerb. Wettbewerb
Ein solches Wettbewerbsproblem ist gekennzeichnet durch die Eigenschaften Sicherheit und Lebendigkeit.
Sicherheit bedeutet: Bedingung für Anzahl der Prozesse im kritischen Bereich K muss |{ p | I(p) ∈ K}| ≤ 1 immer erfüllt sein.
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Eigenschaften von Parallelen Systemen
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Eigenschaften von Parallelen Systemen
Wenn bis zu einem beliebigen Zeitpunkt t eine Reihe von Prozessen versucht haben die Ressource / den kritischen Bereich zu erlangen, ihn aber nicht erhalten haben, so wird es in der Zukunft eine Zeit t' > t geben wo sie erfolgreich sind (d.h. die Anfrage-Operation terminiert).
D.h. eine Anfrage der Ressource terminiert mit einem gewonnen Wettbewerb garantiert irgendwann.
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Eigenschaften von Parallelen Systemen
Benötigt First-In-First-Out Puffer Scheduler!
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Eigenschaften von Parallelen Systemen
Der Service ist die Ressource, der kritische Bereich. Der Klient ist der Prozess, der die Ressource anfragt.
Aus Sicht des Service (Ressource) ist die Bewahrung von Invarianten (z.B. Semaphore immer positiv) wichtigstes Kriterium (Sicherheit) gefolgt von der Deadlock Freiheit. Der konkurrierende Wettbewerb führt immer dazu, dass irgendein Prozess die Ressource nutzen kann → die Ressource gewinnt immer.
Aus Sicht des Klienten (eines Prozesses) ist die Starvation Freiheit wichtigstes Kriterium. Wenn immer ein Prozess die Ressource anfragt, wird er sie (eventuell) zugeteilt bekommen → der Prozess gewinnt immer.
Aus der Sicht aller (um eine Ressource konkurrierenden) Prozesse sind die Freiheit von Deadlock und Starvation wichtigstes Kriterien.
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Eigenschaften von Parallelen Systemen
1. Bounded Bypass f(N)=X ≫
2. Starvation Freiheit ≡ Endlicher Bypass f(N) ≠ ∞ ≫
3. Deadlock Freiheit ≫
4. Bewahrung von Invarianten (Konsistenz der Ressource)
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Eigenschaften von Parallelen Systemen
Tritt häufig ein wenn zwei (oder mehrere) Prozesse gegenseitig eine Ressource (Lock) beanspruchen die aber jeweils vom anderen bereits belegt ist.
Prozesse, die bereits Sperren halten, fordern neue Sperren an.
Die Anforderungen für neue Sperren werden gleichzeitig gestellt.
Zwei oder mehr Prozesse bilden eine kreisförmige Kette, in der jeder Prozesse auf eine Sperre wartet, die vom nächsten Prozess in der Kette gehalten wird → Dining Philosopher Problem.
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Eigenschaften von Parallelen Systemen
Deadlocksituation zweier Prozesse die wechselseitig gesperrte Ressourcen anfordern
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Eigenschaften von Parallelen Systemen
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Parallelität
Unterteilung in räumliche und zeitliche Parallelität
Parallele Datenverarbeitung bedeutet Partitionierung eines seriellen Programms in eine Vielzahl von Subprogrammen oder Tasks
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Parallelität
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Datenabhängigkeit
Räumliche und zeitliche Parallelität führen zu räumlicher und zeitlicher Datenabhängigkeit.
Räumliche Datenabhängigkeit findet auf Intra- und Intertaskebene statt.
Intrataskebene: Subtasks tauschen Daten aus → Sequenzielle Ausführung.
Beispiel: ST1: a=x+y;
ST2: b=a+1;
→ b(a) → ST2(ST1)
Intertaskebene: Übertragung von Daten zwischen Tasks in einer Pipeline.
Zeitliche Datenabhängigkeit: Ergebnisse aus der Vergangenheit gehen in aktuelle Datenberechnung ein. Beispiel: Bewegungserkennung aus einer Bild-Sequenz.
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Datenabhängigkeit
Räumliche und zeitliche Datenabhängigkeit ⇔ Vertikale und horizontale Parallelisierung
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Rechenzeit
Die Rechenzeit ttot für die Ausführung einer Pipeline T1...TM enthält:
ttot=m∑i=1τi+m−1∑i=1td(Di,i+1)+tin+toutτi=max{tcomp(Ti,j(dj))|1⩽j⩽ni}+tcomm(Ti)
als die Zeit die benötigt wird, einen Task i unter Berücksichtigung von Datenabhängigkeiten der ni Subtasks T(dj) zu bearbeiten.
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Rechenzeit
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Klassifikation von parallelen Algorithmen
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Klassifikation von parallelen Algorithmen
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Klassifikation von parallelen Algorithmen
Klassifikation nach Kommunikationsbedarf aufgrund Datenabhängigkeit zwischen einzelnen Tasks eines parallelen Programms
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Speed-up
Bei der Datenverarbeitung gibt es drei Randbedingungen:
Speedup=S(N)=Performanz(N)Performanz(1),St(n)=Rechnenzeit(1)Rechenzeit(N)
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Speed-up
0<S(N)<N
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Kosten und Laufzeit
FUN matmult(A:ARRAY (p,q), B: ARRAY(p,q)) -> C:ARRAY (p,r)DEF matmult(A, B) = FOR i = 1 to p DO FOR j = 1 to r DO C[i,j] <- 0; FOR k = 1 to q DO C[i,j] <- C[i,j] + A[i,k] * B[k,j] END FOR k END FOR j END FOR iEND
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Kosten und Laufzeit
Partitionierung kann beliebig erfolgen, da die einzelnen Ergebniswerte Ci,j nicht voneinander abhängen.
Datenabhängigkeit des Problems: Die Berechnung eines Ci,j Wertes hängt außerhalb der FOR-k-Schleife von keinem anderen Wert Cn,m mit n ≠ i und m ≠ j ab.
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Kosten und Laufzeit
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Kosten und Laufzeit
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Kosten und Laufzeit
Mögliche Partitionierungen der Matrixmultiplikation
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Kosten und Laufzeit
Kosten und Laufzeitanalyse der verschiedenen Parititionierungen
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Kommunikation
Kommunikation Fall 1
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Kommunikation
Kommunikation Fall 2
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Kommunikation
Kommunikation Fall 3
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Kommunikation
Bisher konnten Matrizen ganzzahlig auf VEs verteilt werden. In der Realität ist aber p=q=r,n!
Bisher wurde angenommen, dass alle VEs mit jeder anderen VE Daten mit einer Distanz/Ausdehnung D=1 austauschen kann. Nur möglich mit vollständig verbundenen Netzwerktopologien unter Verwendung von Kreuzschaltern.
Gängige parallele und ökonomische Rechnertopologie: Maschennetz
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Kommunikation
Zweidimensionales Maschennetzwerk
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Kommunikation
Das 2n x 2n Netz wird in vier Quadranten der Größe n × n unterteilt.
Alle VEs die ein A1,j-Element besitzen werden dieses nach rechts verschieben.
Alle VEs die ein Bi,1-Element besitzen werden dieses nach unten verschieben.
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Kommunikation
Dynamische und überlagerte Verteilung der Matrizen A, B, und C
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Kommunikation
Die Laufzeit der Matrixmuliplikation auf dem Netz beträgt Θ(n), da n Verschiebungen durchgeführt werden.
Die Kosten betragen Θ(n3), vergleichbar mit sequenzieller Ausführung. D.h. diese Partitionierung und Architektur ist kostenoptimal.
Das 2n x 2n Netz wird nur in drei Quadranten genutzt. Benötigt werden daher nur 3n2 VEs.
Aus Sicht der Rechnerarchitektur ungünstig zu implementieren und nicht generisch, d.h. abhängig vom verwendeten Algorithmus.
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Kommunikation
Reduktion dieses Verfahrens auf n × n Netz möglich
Die Zeilenelemente von A werden dann nach vorherigen Ablaufschema gegen den Uhrzeigersinn rotiert (nur horizontal), und die Spaltenelemente von B im Uhrzeigersinn (vertikal).
Man erhält gleiche asymptotische Grenzwerte für die Laufzeit Θ(n) und Kosten Θ(n3)!
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Kommunikation
Überlagerte Verarbeitung der Matrizen A, B, und C auf einem Maschennetzwerk
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Maßzahlen für Parallele Systeme
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Maßzahlen für Parallele Systeme
Es gilt (bei N Prozessen):
Ttot=Tcomp+Tcomm+Tidle≈1/N∑i=1..nTcomp,i+Tcomm,i+Tidle,i
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Maßzahlen für Parallele Systeme
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Maßzahlen für Parallele Systeme
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Maßzahlen für Parallele Systeme
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Maßzahlen für Parallele Systeme
Illustration Parallelisierungsgrad und Beispiel
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Maßzahlen für Parallele Systeme
S(N)=T(1)T(N),C(N)=T(N)N
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Maßzahlen für Parallele Systeme
E(N)=S(N)N, mit 1N⩽E(N)⩽1
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Maßzahlen für Parallele Systeme
R(N)=X(N)X(1)
I(N)=X(N)T(N)
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Maßzahlen für Parallele Systeme
U(N)=I(N)N
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Maßzahlen für Parallele Systeme
Ein Einprozessorsystem benötigt für die Ausführung von 1000 Operationen genau 1000 (Takt-)Schritte. Ein Multiprozessorsystem mit 4 Prozessoren benötigt dafür 1200 Operationen, die aber insgesamt in 400 Schritten ausgeführt werden können:
X(1)=1000 und T(1)=1000, X(4)=1200 und T(4)=400 S(4)=2.5 und E(4)=0.625,I(4)=3 und U(4)=0.75
Im Mittel sind 3 Prozessoren gleichzeitig aktiv, da jeder Prozessor nur zu 75% ausgelastet ist!
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Amdahl’s Gesetz
Eine kleine Zahl von sequenziellen Operationen kann den Performanzgewinn durch Parallelisierung signifikant reduzieren.
Sequenzieller Anteil der Berechnungszeit T eines Algorithmus in [%]: η
Paralleler Anteil dann: (1-η)
Kommunikation (Synchronisation) zwischen nebenläufig ausgeführten Tasks oder Verarbeitungseinheiten verursacht immer η>0!
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Amdahl’s Gesetz
Zugriff auf geteilte Ressourcen verursacht immer η>0!
Der Kommunikationsanteil ist schwer im Voraus abzuschätzen, und der genaue Wert hängt auch von temporalen Konkurrenzverhalten ab (wie häufig gibt es verlorene Wettbewerbe)!
Das Amdahlsche gesetzt gilt nur für Probleme mit fester Größe!
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Amdahl’s Gesetz
T(N,η)=ηT(1)+(1−η)T(1)N
S(N,η)=T(1)T(N,η)⩽N(ηN−1)+1
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Amdahl’s Gesetz
Ein Algorithmus mit einem sequenziellen Anteil von η=10% und einem parallelen Teil von 90% wird A.) mit N=10 Prozessoren, und B.) mit N=20 Prozessoren ausgeführt. Die Obergrenze der Beschleunigung S ist dann:
A.) S(10)=5.26 B.) S(20)=6.0
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Amdahl’s Gesetz
(Berechnung)
Beschleunigung S in Abhängigkeit von η und Anzahl der Prozessoren N
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Simulation eines einfachen Systems
Simulation der Beschleunigung S in Abhängigkeit des Kommunikationsanteils η% bei N Prozessen und einem vollständigen Kommunikationsnetzwerkgraphen N:N
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Gustafson's Gesetz
Amdahl's Gesetzt gilt bei Problemen mit fest vorgegebener Größe (also z.B. die Größe einer Matrix)
Aber die theoretische Begrenzung der Beschleunigung S gilt so nicht mehr für Probleme die mitwachsen
Es kann (min.) zwei Motivationen geben:
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Gustafson's Gesetz
C
In einer Konferenzdebatte von 1967 über die Verdienste von Parallelen Rechnen, IBM's Gene Amdahl argumentiert, dass ein wesentlicher Anteil der Arbeit von Computern inhärent seriell ist, sowohl aus algorithmischen als auch aus architektonischen Gründen.
Er schätzte die serielle Fraktion f auf etwa 0.25-0.45. Er behauptete, dass dies den Ansatz stark einschränken würde parallele Verarbeitung zur Reduzierung der Ausführungszeit einzusetzen.
Amdahl argumentierte, dass selbst die Verwendung von zwei Prozessoren weniger kosteneffektiv als ein serieller Prozessor. Außerdem, die Verwendung einer großen Anzahl von Prozessoren würde niemals die Ausführungszeit um mehr als 1/f reduzieren, was durch seine Schätzung ein Faktor von etwa 2-4 war.
Trotz vieler Bemühungen, einen Fehler in Amdahls Gesetz zu finden, ist Amdahls Gesetz seit über 20 Jahren die Begründung für die fortgesetzte Verwendung von seriellem Rechnern und seriellen Programmiermodellen.
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Gustafson's Gesetz
S=1f+P(1−f)
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Gustafson's Gesetz
C Vergleich paralleler zu serieller Berechnung
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Gustafson's Gesetz
C (a) Beschleunigung S möglich mit 32 Prozessoren in Abhängigkeit vom parallelen Anteil, Gustafson’s vs Amdahl’s Gesetz (b) Verschiedene Skalierungstypen und Kommunikationskosten sowie Randbedingungen[]
PD Stefan Bosse - VPP - Metriken und Verhalten von Parallelen Programmen :: Zusammenfassung
Parallele Programme können sich auf unterschiedliche Weise entwickeln. Zustandsraum Diagramme verdeutlichen die möglichen Entwicklungen von parallelen Systemen.
Es gibt eine Vielzahl von metrischen Größen um parallele und verteilte Systeme messbar und vergleichbar zu machen → Beschleunigung.
Es können Fehler in parallelen Systemen durch Wettrennen und Wettbewerbe auftreten: Deadlock, Starvation
Kommunikation ist der limitierende Faktor in der Parallelisierung.