Kapitel 4 Para!ele Algorithmen Thursday, December 2, 2010 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite2 Unter parallelen. und verteilten Algorithmen wird die Erweiterung von klassischen, für . Einprozessormaschinen konzipierten Algorithmen auf viele miteinander kooperierende Prozessoren verstanden. Prozesse und Nebenl!u"gkeit # Formale Grundlagen der Informatik IIKap4: Referenznetze Thursday, December 2, 2010 Seit$ 4: 01 Para!ele Algorithmen (Teil 1) Kap Seite2 Parallele Algorithmen beruhen in der Regel auf . Speicher- oder Rendezvous-Synchronisation und . haben eine synchrone Ablaufsemantik. Prozesse und Nebenl!u"gkeit # Formale Grundlagen der Informatik IIKap4: Referenznetze Thursday, December 2, 2010 Seit$ 4: 01 Para!ele Algorithmen (Teil 1) Kap Seite 3 Parallele Algorithmen beruhen in der Regel auf . Speicher- oder Rendezvous-Synchronisation und . haben eine synchrone Ablaufsemantik. Prozesse und Nebenl!u"gkeit # Formale Grundlagen der Informatik IIKap4: Referenznetze Thursday, December 2, 2010 Seit$ 4: 01 Para!ele Algorithmen (Teil 1) Kap Seite 3 Charakteristisch. für die verteilten Algorithmen ist dagegen Nachrichten-Synchronisation. . Prozesse und Nebenl!u"gkeit # Formale Grundlagen der Informatik IIKap4: Referenznetze Thursday, December 2, 2010 Seit$ 4: 01 Para!ele Algorithmen (Teil 1) Kap Seite 4 P1,1 P1,2 P1,3 P1,4 P2,1 P2,2 P2,3 P2,4 P3,1 P3,2 P3,3 P3,4 P4,1 P4,2 P4,3 P4,4 2-dimensionales Feld Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 5 P1,1 P1,2 P1,3 P1,4 P2,1 P2,2 P2,3 P2,4 P3,1 P3,2 P3,3 P3,4 P4,1 P4,2 P4,3 P4,4 Ring 2-dimensionales Feld Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 5 P1,1 P1,2 P1,3 P1,4 P2,1 P2,2 P2,3 P2,4 P3,1 P3,2 P3,3 P3,4 P4,1 P4,2 P4,3 P4,4 Ring Baum 2-dimensionales Feld Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 5 P1,1 P1,2 P1,3 P1,4 P2,1 P2,2 P2,3 P2,4 Ring Baum Feld (array) P3,1 P3,2 P3,3 P3,4 P4,1 P4,2 P4,3 P4,4 2-dimensionales Feld Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 5 P1,1 P1,2 P1,3 P1,4 P2,1 P2,2 P2,3 P2,4 Ring Baum Feld (array) P3,1 P3,2 P3,3 P3,4 P4,1 P4,2 P4,3 P4,4 ... 2-dimensionales Feld Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 5 P1,1 P1,2 P1,3 P1,4 P2,1 P2,2 P2,3 P2,4 Ring Baum Feld (array) P3,1 P3,2 P3,3 P3,4 P4,1 P4,2 P4,3 P4,4 ... gemeinsamer Speicher 2-dimensionales Feld P1 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) P2 Pr Seite 5 P1,1 P1,2 P1,3 P1,4 P2,1 P2,2 P2,3 P2,4 Ring Baum Feld (array) P3,1 P3,2 P3,3 P3,4 P4,1 P4,2 P4,3 P4,4 ... gemeinsamer Speicher 2-dimensionales Feld P1 P2 Pr P RAM Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 5 P1,1 P1,2 P1,3 P1,4 P2,1 P2,2 P2,3 P2,4 Ring Baum Feld (array) P3,1 P3,2 P3,3 P3,4 P4,1 P4,2 P4,3 P4,4 ... gemeinsamer Speicher 2-dimensionales Feld P1 P2 Pr P RAM Para!el Random-Access Machine Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 5 fortlaufend nummerierte Folge b0 , b1 , . . . von Befehlen aus einer vorgegebenen Befehlsmenge B. 1 6.1 4.1 Random-Access-Maschine (RAM) beliebige reelle Zahl Eingabeband x1 x2 x3 x4 x5 Lesekopf Instruction Counter PROGRAMMSPEICHER Arithmetical Logical Unit DATENSPEICHER IC ALU R0 R1 R2 AC Adress Counter Schreibkopf Ausgabeband beliebige reelle Zahl Abbildung 7.2: RAM – Random Access Machine Formale Grundlagen der Informatik II Thursday, December 2, 2010 Akkumulator Kap 4: Para!ele Algorithmen (Teil 1) Seite 6 x1 x2 x3 x4 x5 Lesekopf PROGRAMMSPEICHER DATENSPEICHER IC R0 R1 R2 ALU Akkumulator AC Schreibkopf Ausgabeband beliebige reelle Zahl Operationen Abbildung 7.2: RAM – Random Access Machine READ WRITE Operationen Operand LOAD READ op = i – die Zahl i WRITE op i – Inhalt des STORE LOAD op Registers Ri ADD STORE op ∗i – indirekte Adresse ADD op (Inhalt des Registers Rj , wobei j SUB SUB op der Inhalt des Registers Ri ist) JUMP label JUMP JZERO label label – Befehlsadresse JZERO JGZERO label JGZERO FGI-2/WiSe 2006/07 Formale Grundlagen der Informatik II Thursday, December 2, 2010 op op op op op op label label label Operand = i – die Zahl i i – Inhalt des Registers Ri ∗i – indirekte Adresse (Inhalt des Registers Rj , wobei j der Inhalt des Registers Ri ist) label – Befehlsadresse Kap 4: Para!ele Algorithmen (Teil 1) Seite 7 x1 x2 x3 x4 x5 Lesekopf PROGRAMMSPEICHER DATENSPEICHER IC R0 R1 R2 ALU Akkumulator AC Schreibkopf Ausgabeband beliebige reelle Zahl Operationen Abbildung 7.2: RAM – Random Access Machine READ WRITE Operationen Operand LOAD READ op = i – die Zahl i WRITE op i – Inhalt des STORE LOAD op Registers Ri ADD STORE op ∗i – indirekte Adresse ADD op (Inhalt des Registers Rj , wobei j SUB SUB op der Inhalt des Registers Ri ist) JUMP label JUMP JZERO label label – Befehlsadresse JZERO JGZERO label JGZERO FGI-2/WiSe 2006/07 Formale Grundlagen der Informatik II Thursday, December 2, 2010 op op op op op op label label label Operand = i – die Zahl i i – Inhalt des Registers Ri ∗i – indirekte Adresse (Inhalt des Registers Rj , wobei j der Inhalt des Registers Ri ist) label – Befehlsadresse Kap 4: Para!ele Algorithmen (Teil 1) Seite 7 Tabelle 6.1: 4.1 Die Befehle einer RAM Instruktion 1. LOAD a 2. STORE i STORE ∗i ∗ 3. ADD 3. ADD a 4. SUB a 5. MULT a 6. DIV a 7. READ Bedeutung c(0) ← v(a) c(i) ← c(0) c – Speicherabbildung c(c(i)) ← c(0) ← c(i) Der Inhalt des Registers Ri . (0) ← (0) + ( ) c(0) ← c(0) + v(a) c(0) ← c(0) − v(a) c(0) ← c(0) × v(a) v(= i) = i c(0) ← �c(0) ÷ v(a)� v(i) = c(i) () derzeitiges Eingab v(a) – Der Wert von a Formale Grundlagen der Informatik II Thursday, December 2, 2010 v(∗i) = c(c(i)) Kap 4: Para!ele Algorithmen (Teil 1) Seite 8 Tabelle 6.1: 4.1 Die Befehle einer RAM Instruktion 1. LOAD a 2. STORE i STORE ∗i ∗ 3. ADD 3. ADD a 4. SUB a 5. MULT a 6. DIV a 7. READ 7. READ i READ ∗i 8. WRITE a 9. JUMP b 10. JGTZ b 11. JZERO b 12. HALT Bedeutung c(0) ← v(a) c(i) ← c(0) c – Speicherabbildung c(c(i)) ← c(0) ← c(i) Der Inhalt des Registers Ri . (0) ← (0) + ( ) c(0) ← c(0) + v(a) c(0) ← c(0) − v(a) c(0) ← c(0) × v(a) v(= i) = i c(0) ← �c(0) ÷ v(a)� v(i) = c(i) () derzeitiges Eingab v(a) – Der Wert von a ←� ÷ � c(i) ← derzeitiges Eingabesymbol c(c(i)) ← derzeitiges Eingabesymbol. Der Kopf auf dem Eingabeband geht in beiden Fällen um ein Feld nach rechts. v(a) wird in das Feld auf dem Ausgabeband geschrieben über dem sich gerade der Bandkopf befindet. Danach wird der Kopf um ein Feld nach rechts bewegt. Der location counter (Befehlsregister) wird auf die mit b markierte Anweisung gesetzt. Der location counter wird auf die mit b markierte Anweisung gesetzt, wenn c(0) > 0 ist, sonst auf die nachfolgende Anweisung. Der location counter wird auf die mit b markierte Anweisung gesetzt, wenn c(0) = 0 ist, sonst auf die nachfolgende Anweisung. Programmausführung beenden. Formale Grundlagen der Informatik II Thursday, December 2, 2010 v(∗i) = c(c(i)) Kap 4: Para!ele Algorithmen (Teil 1) Seite 8 pos: while: continue: endwhile: endif: READ LOAD JGTZ WRITE JUMP LOAD STORE LOAD SUB STORE LOAD JGTZ JUMP LOAD MULT STORE LOAD SUB STORE JUMP WRITE HALT 1 1 pos =0 endif 1 2 1 =1 3 3 continue endwhile 2 1 2 3 =1 3 while 2 read r1 if r1 ≤ 0 then write 0 � r2 ← r1 r3 ← r1 – 1 while r3 > 0 do r2 ← r2 * r1 r3 ← r3 – 1 write r2 4.3 f (n) = nn (RAM–Programm) Abbildung 7.3: Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 9 pos: while: continue: endwhile: endif: READ LOAD JGTZ WRITE JUMP LOAD STORE LOAD SUB STORE LOAD JGTZ JUMP LOAD MULT STORE LOAD SUB STORE JUMP WRITE HALT 1 1 pos =0 endif 1 2 1 =1 3 3 continue endwhile 2 1 2 3 =1 3 while 2 read r1 if r1 ≤ 0 then write 0 � r2 ← r1 r3 ← r1 – 1 while r3 > 0 do r2 ← r2 * r1 r3 ← r3 – 1 write r2 BEGIN READ r1; IF r1 ≤ 0 THEN WRITE 0 ELSE BEGIN r2 ← r1; r3 ← r1 - 1; WHILE r3 > 0 DO BEGIN r2 ← r2 * r1; r3 ← r3 - 1 END; WRITE r2 END END Abbildung 7.4: f (n) = nn (Hochsprache) 4.3 f (n) = nn (RAM–Programm) Abbildung 7.3: Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 9 6.1.2 Komplexitätsmaße für die RAM Uniformes Zeitmaß: 1 Schritt = 1 Zeiteinheit Formale Grundlagen der Informatik II Thursday, December 2, 2010 Uniformes Platzmaß: 1 Register = 1 Platzeinheit Kap 4: Para!ele Algorithmen (Teil 1) Seite 10 6.1.2 Komplexitätsmaße für die RAM Uniformes Zeitmaß: 1 Schritt = 1 Zeiteinheit Uniformes Platzmaß: 1 Register = 1 Platzeinheit das logarithmische Komplexitätsmaß v als Summe�der logarithmischen Kosten �log i� + 1 i �= 0 l(i) = 1 i=0 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 10 6.1.2 Komplexitätsmaße für die RAM Uniformes Zeitmaß: 1 Schritt = 1 Zeiteinheit Uniformes Platzmaß: 1 Register = 1 Platzeinheit das logarithmische Komplexitätsmaß v als Summe�der logarithmischen Kosten �log i� + 1 i �= 0 l(i) = 1 i=0 Operand a =i i ∗i Kosten t(a) l(i) l(i) + l(c(i)) l(i) + l(c(i)) + l(c(c(i))) Formale Grundlagen der Informatik II Thursday, December 2, 2010 Wert Wert + Adresse Wert + Adresse + Adresse Kap 4: Para!ele Algorithmen (Teil 1) Seite 10 Definition 7.4 4.4 Die uniforme (logarithmische) Zeitkomplexität eines RAM–Programms A ist die maximale Anzahl TA (n) der Summen der uniformen (logarithmischen) Kosten aller Schritte des Programms bis zur Termination, wobei das Maximum über alle Eingaben der uniformen (logarithmischen) Größe n gebildet wird. Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 11 Definition 7.4 4.4 Die uniforme (logarithmische) Zeitkomplexität eines RAM–Programms A ist die maximale Anzahl TA (n) der Summen der uniformen (logarithmischen) Kosten aller Schritte des Programms bis zur Termination, wobei das Maximum über alle Eingaben der uniformen (logarithmischen) Größe n gebildet wird. Die uniforme (logarithmische) Platzkomplexität eines RAM–Programms A ist die maximale Summe SA (n) der uniformen (logarithmischen) Kosten aller Register, die dieses Programm bis zur Termination addressiert, wobei das Maximum über alle Eingaben der uniformen (logarithmischen) Größe n gebildet wird. Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 11 pos: while: continue: endwhile: endif: READ LOAD JGTZ WRITE JUMP LOAD STORE LOAD SUB STORE LOAD JGTZ JUMP LOAD MULT STORE LOAD SUB STORE JUMP WRITE HALT 1 1 pos =0 endif 1 2 1 =1 3 3 continue endwhile 2 1 2 3 =1 3 while 2 read r1 Zeitkomplexität Platzkomplexität if r1 ≤ 0 then write 0 � uniforme Kosten O(n) O(1) logarith. Kosten O(n2 log n) O(n log n) r2 ← r1 r3 ← r1 – 1 while r3 > 0 do r2 ← r2 * r1 r3 ← r3 – 1 write r2 Abbildung 7.3: 4.3 f (n) = nn (RAM–Programm) Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 12 pos: while: continue: endwhile: endif: READ LOAD JGTZ WRITE JUMP LOAD STORE LOAD SUB STORE LOAD JGTZ JUMP LOAD MULT STORE LOAD SUB STORE JUMP WRITE HALT 1 1 pos =0 endif 1 2 1 =1 3 3 continue endwhile 2 1 2 3 =1 3 while 2 read r1 Zeitkomplexität Platzkomplexität if r1 ≤ 0 then write 0 � uniforme Kosten O(n) O(1) r2 ← r1 r3 ← r1 – 1 while r3 > 0 do r2 ← r2 * r1 r3 ← r3 – 1 write r2 Abbildung 7.3: 4.3 f (n) = nn (RAM–Programm) Formale Grundlagen der Informatik II Thursday, December 2, 2010 logarith. Kosten O(n2 log n) O(n log n) Kap 4: Para!ele Algorithmen (Teil 1) BEGIN READ r1; IF r1 ≤ 0 THEN WRITE 0 ELSE BEGIN r2 ← r1; r3 ← r1 - 1; WHILE r3 > 0 DO BEGIN r2 ← r2 * r1; r3 ← r3 - 1 END; WRITE r2 END END Seite 12 pos: while: continue: endwhile: endif: READ LOAD JGTZ WRITE JUMP LOAD STORE LOAD SUB STORE LOAD JGTZ JUMP LOAD MULT STORE LOAD SUB STORE JUMP WRITE HALT 1 1 pos =0 endif 1 2 1 =1 3 3 continue endwhile 2 1 2 3 =1 3 while 2 read r1 Zeitkomplexität Platzkomplexität if r1 ≤ 0 then write 0 � uniforme Kosten O(n) O(1) r2 ← r1 r3 ← r1 – 1 while r3 > 0 do r2 ← r2 * r1 r3 ← r3 – 1 write r2 Abbildung 7.3: 4.3 f (n) = nn (RAM–Programm) Formale Grundlagen der Informatik II Thursday, December 2, 2010 logarith. Kosten O(n2 log n) O(n log n) Kap 4: Para!ele Algorithmen (Teil 1) BEGIN READ r1; IF r1 ≤ 0 THEN WRITE 0 ELSE BEGIN r2 ← r1; r3 ← r1 - 1; WHILE r3 > 0 DO BEGIN r2 ← r2 * r1; r3 ← r3 - 1 END; WRITE r2 END END Seite 12 pos: while: continue: endwhile: endif: READ LOAD JGTZ WRITE JUMP LOAD STORE LOAD SUB STORE LOAD JGTZ JUMP LOAD MULT STORE LOAD SUB STORE JUMP WRITE HALT 1 1 pos =0 endif 1 2 1 =1 3 3 continue endwhile 2 1 2 3 =1 3 while 2 read r1 Zeitkomplexität Platzkomplexität if r1 ≤ 0 then write 0 � uniforme Kosten O(n) O(1) r2 ← r1 r3 ← r1 – 1 while r3 > 0 do r2 ← r2 * r1 r3 ← r3 – 1 write r2 Abbildung 7.3: 4.3 f (n) = nn (RAM–Programm) Formale Grundlagen der Informatik II Thursday, December 2, 2010 logarith. Kosten O(n2 log n) O(n log n) Kap 4: Para!ele Algorithmen (Teil 1) BEGIN READ r1; IF r1 ≤ 0 THEN WRITE 0 ELSE BEGIN r2 ← r1; r3 ← r1 - 1; WHILE r3 > 0 DO BEGIN r2 ← r2 * r1; r3 ← r3 - 1 END; WRITE r2 END END Seite 12 pos: while: continue: endwhile: endif: READ LOAD JGTZ WRITE JUMP LOAD STORE LOAD SUB STORE LOAD JGTZ JUMP LOAD MULT STORE LOAD SUB STORE JUMP WRITE HALT 1 1 pos =0 endif 1 2 1 =1 3 3 continue endwhile 2 1 2 3 =1 3 while 2 read r1 Zeitkomplexität Platzkomplexität if r1 ≤ 0 then write 0 � r2 ← r1 uniforme Kosten O(n) O(1) Thursday, December 2, 2010 i n ·n r3 ← r1 – 1 while r3 > 0 do r2 ← r2 * r1 r3 ← r3 – 1 write r2 Abbildung 7.3: 4.3 f (n) = nn (RAM–Programm) Formale Grundlagen der Informatik II logarith. Kosten O(n2 log n) O(n log n) Kap 4: Para!ele Algorithmen (Teil 1) BEGIN READ r1; IF r1 ≤ 0 THEN WRITE 0 ELSE BEGIN r2 ← r1; r3 ← r1 - 1; WHILE r3 > 0 DO BEGIN r2 ← r2 * r1; r3 ← r3 - 1 END; WRITE r2 END END Seite 12 pos: while: continue: endwhile: endif: READ LOAD JGTZ WRITE JUMP LOAD STORE LOAD SUB STORE LOAD JGTZ JUMP LOAD MULT STORE LOAD SUB STORE JUMP WRITE HALT 1 1 pos =0 endif 1 2 1 =1 3 3 continue endwhile 2 1 2 3 =1 3 while 2 read r1 Zeitkomplexität Platzkomplexität if r1 ≤ 0 then write 0 � r2 ← r1 r3 ← r1 – 1 uniforme Kosten O(n) O(1) Thursday, December 2, 2010 i n · n logarithmischen Die Kost l(ni ) + l(n) ≈ (i + 1) log n u sind while r3 > 0 do r2 ← r2 * r1 r3 ← r3 – 1 write r2 Abbildung 7.3: 4.3 f (n) = nn (RAM–Programm) Formale Grundlagen der Informatik II logarith. Kosten O(n2 log n) O(n log n) Kap 4: Para!ele Algorithmen (Teil 1) BEGIN READ r1; IF r1 ≤ 0 THEN WRITE 0 ELSE BEGIN r2 ← r1; r3 ← r1 - 1; WHILE r3 > 0 DO BEGIN r2 ← r2 * r1; r3 ← r3 - 1 END; WRITE r2 END END Seite 12 pos: while: continue: endwhile: endif: READ LOAD JGTZ WRITE JUMP LOAD STORE LOAD SUB STORE LOAD JGTZ JUMP LOAD MULT STORE LOAD SUB STORE JUMP WRITE HALT 1 1 pos =0 endif 1 2 1 =1 3 3 continue endwhile 2 1 2 3 =1 3 while 2 read r1 Zeitkomplexität Platzkomplexität if r1 ≤ 0 then write 0 � r2 ← r1 r3 ← r1 – 1 while r3 > 0 do r2 ← r2 * r1 uniforme Kosten O(n) O(1) i n · n logarithmischen Die Kost l(ni ) + l(n) ≈ (i + 1) log n u sind n−1 � (i + 1) log n = O(n2 log n) i=1 r3 ← r3 – 1 write r2 Abbildung 7.3: 4.3 f (n) = nn (RAM–Programm) Formale Grundlagen der Informatik II Thursday, December 2, 2010 logarith. Kosten O(n2 log n) O(n log n) Kap 4: Para!ele Algorithmen (Teil 1) BEGIN READ r1; IF r1 ≤ 0 THEN WRITE 0 ELSE BEGIN r2 ← r1; r3 ← r1 - 1; WHILE r3 > 0 DO BEGIN r2 ← r2 * r1; r3 ← r3 - 1 END; WRITE r2 END END Seite 12 Die aktuelle Konfiguration einer RAM läßt sich eindeutig aus dem Inhalt der Datenspeicher und dem Befehlszähler IC bestimmen. Am Anfang einer Berechnung sind alle Register mit 0 initialisiert. 4.1.3 7.1.3 Wechselseitige Simulation einer RAM und einer Eine RAM wird durch ein Programm spezifiziert. Dies ist eine endliche, Turing-Machine fortlaufend nummerierte Folge b , b , . . . von Befehlen aus einer vorgege0 benen Befehlsmenge B. 1 beliebige reelle Zahl Da RAMs und RASPs einander mit nur konstantem Zeitverlust“ simu” xlieren, x x x x genügt es, nur eines dieser Modelle zu betrachten. Wir betrachten Lesekopf die RAM, da hier ein Vergleich mit der TM einfacher ist. Eingabeband 1 2 3 4 5 PROGRAMMSPEICHER DATENSPEICHER Die nächsteICwichtige RFrage: RAM und TM sind zwei sehr verschiedene Akkumulator Modelle. Wie ALU schnell Rkönnen sie einander simulieren ? R 0 1 2 AC Satz 7.6 Eine T (n)–zeitbeschränkte Mehrband DTM M kann durch eine RAM+ simuliertSchreibkopf werden, die im uniformen Maß O(T (n))-zeitbeschränkt ist und die im logarithmischen Maß O(T (n) log T (n))-zeitAusgabeband beschränkt ist. beliebige reelle Zahl Abbildung 7.2: RAM – Random Access Machine Der Beweis stammt aus [HMU79]. Einen etwas ausführlicheren finden die Leser(innen) bei [Pau78]. Sehr detaillierte Beweise finden sich in [Rei90]. Operationen Operand READ op = i – die Zahl i Beweis: WRITE op i – Inhalt des LOAD op Registers Ri STORE op ∗i – indirekte Adresse ADD op (Inhalt des Registers Rj , wobei j SUB op der Inhalt des Registers Ri ist) Formale Grundlagen der Informatik II JUMP label Thursday, December 2, 2010 JZERO label label – Befehlsadresse M habe k einseitig unendliche Bänder. Die simulierende RAM + (in der Kapält 4: Para!ele 1) Seite 13 Graphik mi R bezeichnet) verh sich Algorithmen auf dem(TeilEinund Ausgabeband Die aktuelle Konfiguration einer RAM läßt sich eindeutig aus dem Inhalt der Datenspeicher und dem Befehlszähler IC bestimmen. Am Anfang einer Berechnung sind alle Register mit 0 initialisiert. 4.1.3 7.1.3 Wechselseitige Simulation einer RAM und einer Eine RAM wird durch ein Programm spezifiziert. Dies ist eine endliche, Turing-Machine fortlaufend nummerierte Folge b , b , . . . von Befehlen aus einer vorgege0 benen Befehlsmenge B. 1 beliebige reelle Zahl " !Zeitverlust“ simuDa RAMs und RASPs einander mit nur konstantem ” xlieren, x x x x # A zu genügt es, nur eines dieser Modelle R betrachten. B E I T SWir B betrachten A N D ### Lesekopf # ist. die RAM, da hier ein Vergleich mit der TM einfacher Eingabeband 1 2 3 4 5 PROGRAMMSPEICHER DATENSPEICHER Die nächsteICwichtige RFrage: RAM und TM sind zwei sehr verschiedene Akkumulator Modelle. Wie ALU schnell Rkönnen sie einander simulieren ? R 0 1 2 AC SteuerEndliche Satz 7.6 Eine T (n)–zeitbeschränkte Mehrband DTM M kann durch eiKontrolle einheit ne RAM+ simuliertSchreibkopf werden, die im uniformen Maß O(T (n))-zeitbeschränkt ist und die im logarithmischen Maß O(T (n) log T (n))-zeitAusgabeband beschränkt ist. beliebige reelle Zahl Abbildung 7.2: RAM – Random Access Machine Der Beweis stammt aus [HMU79]. Einen etwas ausführlicheren finden die Leser(innen) bei [Pau78]. Sehr detaillierte Beweise finden sich in [Rei90]. Operationen Operand READ op = i – die Zahl i Beweis: WRITE op i – Inhalt des LOAD op Registers Ri STORE op ∗i – indirekte Adresse ADD op (Inhalt des Registers Rj , wobei j SUB op der Inhalt des Registers Ri ist) Formale Grundlagen der Informatik II JUMP label Thursday, December 2, 2010 JZERO label label – Befehlsadresse M habe k einseitig unendliche Bänder. Die simulierende RAM + (in der Kapält 4: Para!ele 1) Seite 13 Graphik mi R bezeichnet) verh sich Algorithmen auf dem(TeilEinund Ausgabeband Die aktuelle Konfiguration einer RAM läßt sich eindeutig aus dem Inhalt der Datenspeicher und dem Befehlszähler IC bestimmen. Am Anfang einer Berechnung sind alle Register mit 0 initialisiert. 4.1.3 7.1.3 Wechselseitige Simulation einer RAM und einer Eine RAM wird durch ein Programm spezifiziert. Dies ist eine endliche, Turing-Machine fortlaufend nummerierte Folge b , b , . . . von Befehlen aus einer vorgege- Maß T (n)–zeitb " !Zeitverlust“ simuDa RAMs und RASPs einander mit nur konstantem ” Division) # A zu lieren, genügt es, nur eines dieser Modelle R betrachten. B E I T SWir B betrachten A N D ### 0 benen Befehlsmenge B. 1 beliebige reelle Zahl Eingabeband x1 x2 x3 x4 x5 Lesekopf # ist. die RAM, da hier ein Vergleich mit der TM einfacher PROGRAMMSPEICHER DATENSPEICHER Die nächsteICwichtige RFrage: RAM und TM sind zwei sehr verschiedene Akkumulator Modelle. Wie ALU schnell Rkönnen sie einander simulieren ? R 0 1 2 AC SteuerEndliche Satz 7.6 Eine T (n)–zeitbeschränkte Mehrband DTM M kann durch eiKontrolle einheit ne RAM+ simuliertSchreibkopf werden, die im uniformen Maß O(T (n))-zeitbeschränkt ist und die im logarithmischen Maß O(T (n) log T (n))-zeitAusgabeband beschränkt ist. beliebige reelle Zahl ? Abbildung 7.2: RAM – Random Access Machine Der Beweis stammt aus [HMU79]. Einen etwas ausführlicheren finden die Leser(innen) bei [Pau78]. Sehr detaillierte Beweise finden sich in [Rei90]. Operationen Operand READ op = i – die Zahl i Beweis: WRITE op i – Inhalt des LOAD op Registers Ri STORE op ∗i – indirekte Adresse ADD op (Inhalt des Registers Rj , wobei j SUB op der Inhalt des Registers Ri ist) Formale Grundlagen der Informatik II JUMP label Thursday, December 2, 2010 JZERO label label – Befehlsadresse M habe k einseitig unendliche Bänder. Die simulierende RAM + (in der Kapält 4: Para!ele 1) Seite 13 Graphik mi R bezeichnet) verh sich Algorithmen auf dem(TeilEinund Ausgabeband Die aktuelle Konfiguration einer RAM läßt sich eindeutig aus dem Inhalt der Datenspeicher und dem Befehlszähler IC bestimmen. Am Anfang einer Berechnung sind alle Register mit 0 initialisiert. 4.1.3 7.1.3 Wechselseitige Simulation einer RAM und einer Eine RAM wird durch ein Programm spezifiziert. Dies ist eine endliche, Turing-Machine fortlaufend nummerierte Folge b , b , . . . von Befehlen aus einer vorgege- Maß T (n)–zeitb " !Zeitverlust“ simuDa RAMs und RASPs einander mit nur konstantem ” Division) # A zu lieren, genügt es, nur eines dieser Modelle R betrachten. B E I T SWir B betrachten A N D ### 0 benen Befehlsmenge B. 1 beliebige reelle Zahl Eingabeband x1 x2 x3 x4 x5 Lesekopf # ist. die RAM, da hier ein Vergleich mit der TM einfacher PROGRAMMSPEICHER DATENSPEICHER Die nächsteICwichtige RFrage: RAM und TM sind zwei sehr verschiedene Akkumulator Modelle. Wie ALU schnell Rkönnen sie einander simulieren ? R 0 1 2 AC SteuerEndliche Satz 7.6 Eine T (n)–zeitbeschränkte Mehrband DTM M kann durch eiKontrolle einheit ne RAM+ simuliertSchreibkopf werden, die im uniformen Maß O(T (n))-zeitbeschränkt ist und die im logarithmischen Maß O(T (n) log T (n))-zeitAusgabeband beschränkt ist. beliebige reelle Zahl aß O(T log T (n))-zei ?stammt Der(n) Beweis aus [HMU79]. Einen etwas ausführlicheren finden die Abbildung 7.2: RAM – Random Access Machine Leser(innen) bei [Pau78]. Sehr detaillierte Beweise finden sich in [Rei90]. Operationen Operand READ op = i – die Zahl i Beweis: WRITE op i – Inhalt des LOAD op Registers Ri STORE op ∗i – indirekte Adresse ADD op (Inhalt des Registers Rj , wobei j SUB op der Inhalt des Registers Ri ist) Formale Grundlagen der Informatik II JUMP label Thursday, December 2, 2010 JZERO label label – Befehlsadresse M habe k einseitig unendliche Bänder. Die simulierende RAM + (in der Kapält 4: Para!ele 1) Seite 13 Graphik mi R bezeichnet) verh sich Algorithmen auf dem(TeilEinund Ausgabeband Die aktuelle Konfiguration einer RAM läßt sich eindeutig aus dem Inhalt der Datenspeicher und dem Befehlszähler IC bestimmen. Am Anfang einer Berechnung sind alle Register mit 0 initialisiert. 4.1.3 7.1.3 Wechselseitige Simulation einer RAM und einer Eine RAM wird durch ein Programm spezifiziert. Dies ist eine endliche, Turing-Machine fortlaufend nummerierte Folge b , b , . . . von Befehlen aus einer vorgege- Maß T (n)–zeitb Maß T (n)–zeitb " !Zeitverlust“ simuDa RAMs und RASPs einander mit nur konstantem ” Division) # A zu lieren, genDivision) ügt es, nur eines dieser Modelle R betrachten. B E I T SWir B betrachten A N D ### 0 benen Befehlsmenge B. 1 beliebige reelle Zahl Eingabeband x1 x2 x3 x4 x5 Lesekopf # ist. die RAM, da hier ein Vergleich mit der TM einfacher PROGRAMMSPEICHER DATENSPEICHER Die nächsteICwichtige RFrage: RAM und TM sind zwei sehr verschiedene Akkumulator Modelle. Wie ALU schnell Rkönnen sie einander simulieren ? R 0 1 2 AC SteuerEndliche Satz 7.6 Eine T (n)–zeitbeschränkte Mehrband DTM M kann durch eiKontrolle einheit ne RAM+ simuliertSchreibkopf werden, die im uniformen Maß O(T (n))-zeitbeschränkt ist und die im logarithmischen Maß O(T (n) log T (n))-zeitAusgabeband beschränkt ist. beliebige reelle Zahl aß O(T log T (n))-zei ?stammt Der(n) Beweis aus [HMU79]. Einen etwas ausführlicheren finden die Abbildung 7.2: RAM – Random Access Machine Leser(innen) bei [Pau78]. Sehr detaillierte Beweise finden sich in [Rei90]. Operationen Operand READ op = i – die Zahl i Beweis: WRITE op i – Inhalt des ? M habe k einseitig unendliche Bänder. Die simulierende RAM LOAD op Registers Ri STORE op ∗i – indirekte Adresse ADD op (Inhalt des Registers Rj , wobei j SUB op der Inhalt des Registers Ri ist) Formale Grundlagen der Informatik II JUMP label Thursday, December 2, 2010 JZERO label label – Befehlsadresse (in der Kapält 4: Para!ele 1) Seite 13 Graphik mi R bezeichnet) verh sich Algorithmen auf dem(TeilEinund Ausgabeband + Die aktuelle Konfiguration einer RAM läßt sich eindeutig aus dem Inhalt der Datenspeicher und dem Befehlszähler IC bestimmen. Am Anfang einer Berechnung sind alle Register mit 0 initialisiert. 4.1.3 7.1.3 Wechselseitige Simulation einer RAM und einer Eine RAM wird durch ein Programm spezifiziert. Dies ist eine endliche, Turing-Machine fortlaufend nummerierte Folge b , b , . . . von Befehlen aus einer vorgege- Maß T (n)–zeitb Maß T (n)–zeitb " !Zeitverlust“ simuDa RAMs und RASPs einander mit nur konstantem ” Division) # A zu lieren, genDivision) ügt es, nur eines dieser Modelle R betrachten. B E I T SWir B betrachten A N D ### 0 benen Befehlsmenge B. 1 beliebige reelle Zahl Eingabeband x1 x2 x3 x4 x5 Lesekopf # ist. die RAM, da hier ein Vergleich mit der TM einfacher PROGRAMMSPEICHER DATENSPEICHER Die nächsteICwichtige RFrage: RAM und TM sind zwei sehr verschiedene Akkumulator Modelle. Wie ALU schnell Rkönnen sie einander simulieren ? R 0 1 2 AC SteuerEndliche Satz 7.6 Eine T (n)–zeitbeschränkte Mehrband DTM M kann durch eiKontrolle einheit ne RAM+ simuliertSchreibkopf werden, die im uniformen Maß O(T (n))-zeitbeschränkt ist und die im logarithmischen Maß O(T (n) log T (n))-zeitAusgabeband beschränkt ist. beliebige reelle Zahl aß O(T log T (n))-zei ?stammt Der(n) Beweis aus [HMU79]. Einen etwas ausführlicheren finden die Abbildung 7.2: RAM – Random Access Machine Leser(innen) bei [Pau78]. Sehr detaillierte Beweise finden sich in [Rei90]. Operationen Operand (d. h. RAM READ op = i – die Zahl i Beweis: WRITE op i – Inhalt des 2 LOAD op Registers Ri STORE op ∗i – indirekte Adresse ADD op (Inhalt des Registers Rj , wobei j SUB op der Inhalt des Registers Ri ist) Formale Grundlagen der Informatik II JUMP label Thursday, December 2, 2010 JZERO label label – Befehlsadresse O(T ? (n))–zeitb M habe k einseitig unendliche Bänder. Die simulierende RAM + (in der Kapält 4: Para!ele 1) Seite 13 Graphik mi R bezeichnet) verh sich Algorithmen auf dem(TeilEinund Ausgabeband RAM+ ohne MULT, DIV 7: Parallele Algorithmen 4.7 Eine TKapitel Satz 7.7 (n)–zeitbeschr änkte Mehrband DTM M kann durch eine Konfiguration RAM+ einer simuliert werden, Die aktuelle RAM läßt sich eindeutig aus dem die Inhalt im uniformen Maß O(T (n))-zeitbeder Datenspeicher und dem Befehlszähler IC bestimmen. Am Anfang schränkt ist und im logarithmischen Maß O(T (n) log T (n))-zeiteiner Berechnung sind alle Register mit 0 die initialisiert. Eine RAM wird durch ein Programm beschr änkt ist. spezifiziert. Dies ist eine endliche, fortlaufend nummerierte Folge b0 , b1 , . . . von Befehlen aus einer vorgegebenen Befehlsmenge B. beliebige reelle Zahl Eingabeband x1 x2 x3 x4 x5 Lesekopf PROGRAMMSPEICHER DATENSPEICHER IC ALU R0 R1 R2 AC Schreibkopf Ausgabeband Akkumulator A R B E I T beliebige reelle Zahl Abbildung 7.2: RAM – Random Access Machine Thursday, December 2, 2010 14 RAM+ ohne MULT, DIV 7: Parallele Algorithmen 4.7 Eine TKapitel Satz 7.7 (n)–zeitbeschr änkte Mehrband DTM M kann durch eine Konfiguration RAM+ einer simuliert werden, Die aktuelle RAM läßt sich eindeutig aus dem die Inhalt im uniformen Maß O(T (n))-zeitbeder Datenspeicher und dem Befehlszähler IC bestimmen. Am Anfang schränkt ist und im logarithmischen Maß O(T (n) log T (n))-zeiteiner Berechnung sind alle Register mit 0 die initialisiert. Eine RAM wird durch ein Programm beschr änkt ist. spezifiziert. Dies ist eine endliche, fortlaufend nummerierte Folge b0 , b1 , . . . von Befehlen aus einer vorgegebenen Befehlsmenge B. beliebige reelle Zahl Eingabeband x1 x2 x3 x4 # A R B E I T S B A N D #### x5 # Lesekopf PROGRAMMSPEICHER DATENSPEICHER IC ALU R0 R1 R2 AC Schreibkopf Ausgabeband Akkumulator A R B E I T SteuerEndliche Kontrolle einheit beliebige reelle Zahl Abbildung 7.2: RAM – Random Access Machine Thursday, December 2, 2010 " ! 14 RAM+ ohne MULT, DIV 7: Parallele Algorithmen 4.7 Eine TKapitel Satz 7.7 (n)–zeitbeschr änkte Mehrband DTM M kann durch eine Konfiguration RAM+ einer simuliert werden, Die aktuelle RAM läßt sich eindeutig aus dem die Inhalt im uniformen Maß O(T (n))-zeitbeder Datenspeicher und dem Befehlszähler IC bestimmen. Am Anfang schränkt ist und im logarithmischen Maß O(T (n) log T (n))-zeiteiner Berechnung sind alle Register mit 0 die initialisiert. Eine RAM wird durch ein Programm beschr änkt ist. spezifiziert. Dies ist eine endliche, fortlaufend nummerierte Folge b0 , b1 , . . . von Befehlen aus einer vorgegebenen Befehlsmenge B. beliebige reelle Zahl Eingabeband x1 x2 x3 x4 # A R B E I T S B A N D #### x5 # Lesekopf PROGRAMMSPEICHER DATENSPEICHER IC ALU R0 R1 R2 AC Schreibkopf Ausgabeband Akkumulator A R B E I T SteuerEndliche Kontrolle einheit beliebige reelle Zahl Abbildung 7.2: RAM – Random Access Machine Thursday, December 2, 2010 " ! 14 RAM+ ohne MULT, DIV 7: Parallele Algorithmen 4.7 Eine TKapitel Satz 7.7 (n)–zeitbeschr änkte Mehrband DTM M kann durch eine Konfiguration RAM+ einer simuliert werden, Die aktuelle RAM läßt sich eindeutig aus dem die Inhalt im uniformen Maß O(T (n))-zeitbeder Datenspeicher und dem Befehlszähler IC bestimmen. Am Anfang schränkt ist und im logarithmischen Maß O(T (n) log T (n))-zeiteiner Berechnung sind alle Register mit 0 die initialisiert. Eine RAM wird durch ein Programm beschr änkt ist. spezifiziert. Dies ist eine endliche, fortlaufend nummerierte Folge b0 , b1 , . . . von Befehlen aus einer vorgegebenen Befehlsmenge B. beliebige reelle Zahl Eingabeband x1 x2 x3 x4 # A R B E I T S B A N D #### x5 # Lesekopf PROGRAMMSPEICHER DATENSPEICHER IC ALU R0 R1 R2 AC Schreibkopf Ausgabeband Akkumulator A R B E I T SteuerEndliche Kontrolle einheit beliebige reelle Zahl Abbildung 7.2: RAM – Random Access Machine Thursday, December 2, 2010 " ! 14 RAM+ ohne MULT, DIV 7: Parallele Algorithmen 4.7 Eine TKapitel Satz 7.7 (n)–zeitbeschr änkte Mehrband DTM M kann durch eine Konfiguration RAM+ einer simuliert werden, Die aktuelle RAM läßt sich eindeutig aus dem die Inhalt im uniformen Maß O(T (n))-zeitbeder Datenspeicher und dem Befehlszähler IC bestimmen. Am Anfang schränkt ist und im logarithmischen Maß O(T (n) log T (n))-zeiteiner Berechnung sind alle Register mit 0 die initialisiert. Eine RAM wird durch ein Programm beschr änkt ist. spezifiziert. Dies ist eine endliche, fortlaufend nummerierte Folge b0 , b1 , . . . von Befehlen aus einer vorgegebenen Befehlsmenge B. beliebige reelle Zahl Eingabeband x1 x2 x3 x4 # A R B E I T S B A N D #### x5 # Lesekopf PROGRAMMSPEICHER DATENSPEICHER IC ALU R0 R1 R2 AC Schreibkopf Ausgabeband Akkumulator A R B E I T Konfiguration der TM SteuerEndliche Kontrolle einheit beliebige reelle Zahl Abbildung 7.2: RAM – Random Access Machine Thursday, December 2, 2010 " ! 14 RAM+ ohne MULT, DIV 7: Parallele Algorithmen 4.7 Eine TKapitel Satz 7.7 (n)–zeitbeschr änkte Mehrband DTM M kann durch eine Konfiguration RAM+ einer simuliert werden, Die aktuelle RAM läßt sich eindeutig aus dem die Inhalt im uniformen Maß O(T (n))-zeitbeder Datenspeicher und dem Befehlszähler IC bestimmen. Am Anfang schränkt ist und im logarithmischen Maß O(T (n) log T (n))-zeiteiner Berechnung sind alle Register mit 0 die initialisiert. Eine RAM wird durch ein Programm beschr änkt ist. spezifiziert. Dies ist eine endliche, fortlaufend nummerierte Folge b0 , b1 , . . . von Befehlen aus einer vorgegebenen Befehlsmenge B. beliebige reelle Zahl Eingabeband x1 x2 x3 x4 # A R B E I T S B A N D #### x5 # Lesekopf PROGRAMMSPEICHER DATENSPEICHER IC ALU R0 R1 R2 AC Schreibkopf Ausgabeband Akkumulator A R B E I T Konfiguration der TM SteuerEndliche Kontrolle einheit Zustand p beliebige reelle Zahl Abbildung 7.2: RAM – Random Access Machine Thursday, December 2, 2010 " ! 14 RAM+ ohne MULT, DIV 7: Parallele Algorithmen 4.7 Eine TKapitel Satz 7.7 (n)–zeitbeschr änkte Mehrband DTM M kann durch eine Konfiguration RAM+ einer simuliert werden, Die aktuelle RAM läßt sich eindeutig aus dem die Inhalt im uniformen Maß O(T (n))-zeitbeder Datenspeicher und dem Befehlszähler IC bestimmen. Am Anfang schränkt ist und im logarithmischen Maß O(T (n) log T (n))-zeiteiner Berechnung sind alle Register mit 0 die initialisiert. Eine RAM wird durch ein Programm beschr änkt ist. spezifiziert. Dies ist eine endliche, fortlaufend nummerierte Folge b0 , b1 , . . . von Befehlen aus einer vorgegebenen Befehlsmenge B. beliebige reelle Zahl Eingabeband x1 x2 x3 x4 # DATENSPEICHER IC ALU R0 R1 R2 AC Schreibkopf Ausgabeband Akkumulator A R B E I T Konfiguration der TM SteuerEndliche Kontrolle einheit Zustand p beliebige reelle Zahl Abbildung 7.2: RAM – Random Access Machine Thursday, December 2, 2010 " ! # A R B E I T S B A N D #### x5 Lesekopf PROGRAMMSPEICHER Position des Kopfes: j = 6 14 RAM+ ohne MULT, DIV 7: Parallele Algorithmen 4.7 Eine TKapitel Satz 7.7 (n)–zeitbeschr änkte Mehrband DTM M kann durch eine Konfiguration RAM+ einer simuliert werden, Die aktuelle RAM läßt sich eindeutig aus dem die Inhalt im uniformen Maß O(T (n))-zeitbeder Datenspeicher und dem Befehlszähler IC bestimmen. Am Anfang schränkt ist und im logarithmischen Maß O(T (n) log T (n))-zeiteiner Berechnung sind alle Register mit 0 die initialisiert. Eine RAM wird durch ein Programm beschr änkt ist. spezifiziert. Dies ist eine endliche, fortlaufend nummerierte Folge b0 , b1 , . . . von Befehlen aus einer vorgegebenen Befehlsmenge B. beliebige reelle Zahl Eingabeband x1 x2 x3 x4 # DATENSPEICHER IC ALU R0 R1 R2 AC Schreibkopf Ausgabeband Akkumulator A R B E I T beliebige reelle Zahl Abbildung 7.2: RAM – Random Access Machine Thursday, December 2, 2010 " ! # A R B E I T S B A N D #### x5 Lesekopf PROGRAMMSPEICHER Position des Kopfes: j = 6 Konfiguration der TM SteuerEndliche Kontrolle einheit Zustand p (p,I,U,links,q) 14 RAM+ ohne MULT, DIV 7: Parallele Algorithmen 4.7 Eine TKapitel Satz 7.7 (n)–zeitbeschr änkte Mehrband DTM M kann durch eine Konfiguration RAM+ einer simuliert werden, Die aktuelle RAM läßt sich eindeutig aus dem die Inhalt im uniformen Maß O(T (n))-zeitbeder Datenspeicher und dem Befehlszähler IC bestimmen. Am Anfang schränkt ist und im logarithmischen Maß O(T (n) log T (n))-zeiteiner Berechnung sind alle Register mit 0 die initialisiert. Eine RAM wird durch ein Programm beschr änkt ist. spezifiziert. Dies ist eine endliche, fortlaufend nummerierte Folge b0 , b1 , . . . von Befehlen aus einer vorgegebenen Befehlsmenge B. beliebige reelle Zahl Eingabeband x1 x2 x3 x4 # DATENSPEICHER IC ALU R0 R1 R2 AC Schreibkopf Ausgabeband p A R B E I T beliebige reelle Zahl Abbildung 7.2: RAM – Random Access Machine Thursday, December 2, 2010 " ! # A R B E I T S B A N D #### x5 Lesekopf PROGRAMMSPEICHER Position des Kopfes: j = 6 Akkumulator Konfiguration der TM SteuerEndliche Kontrolle einheit Zustand p (p,I,U,links,q) 14 RAM+ ohne MULT, DIV 7: Parallele Algorithmen 4.7 Eine TKapitel Satz 7.7 (n)–zeitbeschr änkte Mehrband DTM M kann durch eine Konfiguration RAM+ einer simuliert werden, Die aktuelle RAM läßt sich eindeutig aus dem die Inhalt im uniformen Maß O(T (n))-zeitbeder Datenspeicher und dem Befehlszähler IC bestimmen. Am Anfang schränkt ist und im logarithmischen Maß O(T (n) log T (n))-zeiteiner Berechnung sind alle Register mit 0 die initialisiert. Eine RAM wird durch ein Programm beschr änkt ist. spezifiziert. Dies ist eine endliche, fortlaufend nummerierte Folge b0 , b1 , . . . von Befehlen aus einer vorgegebenen Befehlsmenge B. beliebige reelle Zahl Eingabeband x1 x2 x3 x4 # DATENSPEICHER IC ALU R0 R1 R2 AC Schreibkopf Ausgabeband p A R B E I T j beliebige reelle Zahl Abbildung 7.2: RAM – Random Access Machine Thursday, December 2, 2010 " ! # A R B E I T S B A N D #### x5 Lesekopf PROGRAMMSPEICHER Position des Kopfes: j = 6 Akkumulator Konfiguration der TM SteuerEndliche Kontrolle einheit Zustand p (p,I,U,links,q) 14 RAM+ ohne MULT, DIV 4.7 Eine T (n)–zeitbeschränkte Mehrband DTM M kann durch eiSatz 7.6 ne RAM+ simuliert werden, die im uniformen Maß O(T (n))-zeitbeschränkt ist und die im logarithmischen Maß O(T (n) log T (n))-zeitbeschränkt ist. PROGRAMMSPEICHER DATENSPEICHER IC ALU R0 R1 R2 AC R6 p 6 A R B E I T Akkumulator Position des Kopfes: j = 6 " ! # A R B E I T S B A N D #### # SteuerEndliche Kontrolle einheit Zustand p (p,I,U,links,q) Thursday, December 2, 2010 15 RAM+ ohne MULT, DIV 4.7 Eine T (n)–zeitbeschränkte Mehrband DTM M kann durch eiSatz 7.6 ne RAM+ simuliert werden, die im uniformen Maß O(T (n))-zeitbeschränkt ist und die im logarithmischen Maß O(T (n) log T (n))-zeitbeschränkt ist. PROGRAMMSPEICHER DATENSPEICHER IC ALU R0 R1 R2 AC ... R6 if r0 =’p’ ... fi Thursday, December 2, 2010 p 6 A R B E I T Akkumulator Position des Kopfes: j = 6 " ! # A R B E I T S B A N D #### # SteuerEndliche Kontrolle einheit fi Zustand p (p,I,U,links,q) 15 RAM+ ohne MULT, DIV 4.7 Eine T (n)–zeitbeschränkte Mehrband DTM M kann durch eiSatz 7.6 ne RAM+ simuliert werden, die im uniformen Maß O(T (n))-zeitbeschränkt ist und die im logarithmischen Maß O(T (n) log T (n))-zeitbeschränkt ist. PROGRAMMSPEICHER DATENSPEICHER IC ALU R0 R1 R2 AC ... R6 if r0 =’p’ p 6 A R B E I T Akkumulator Position des Kopfes: j = 6 " ! # A R B E I T S B A N D #### # if rc(r1 ) =’I’ ... fi Thursday, December 2, 2010 SteuerEndliche Kontrolle einheit fi Zustand p (p,I,U,links,q) 15 RAM+ ohne MULT, DIV 4.7 Eine T (n)–zeitbeschränkte Mehrband DTM M kann durch eiSatz 7.6 ne RAM+ simuliert werden, die im uniformen Maß O(T (n))-zeitbeschränkt ist und die im logarithmischen Maß O(T (n) log T (n))-zeitbeschränkt ist. PROGRAMMSPEICHER DATENSPEICHER IC ALU R0 R1 R2 AC ... R6 if r0 =’p’ p 6 A R B E I U T Akkumulator Position des Kopfes: j = 6 " ! # A R B E I T S B A N D #### # if rc(r1 ) =’I’ then rc(r1 ) ←’U’; ... fi Thursday, December 2, 2010 SteuerEndliche Kontrolle einheit fi Zustand p (p,I,U,links,q) 15 RAM+ ohne MULT, DIV 4.7 Eine T (n)–zeitbeschränkte Mehrband DTM M kann durch eiSatz 7.6 ne RAM+ simuliert werden, die im uniformen Maß O(T (n))-zeitbeschränkt ist und die im logarithmischen Maß O(T (n) log T (n))-zeitbeschränkt ist. PROGRAMMSPEICHER DATENSPEICHER IC ALU R0 R1 R2 AC ... R6 if r0 =’p’ p 6 5 A R B E I U T Akkumulator Position des Kopfes: j = 6 " ! # A R B E I T S B A N D #### # if rc(r1 ) =’I’ then rc(r1 ) ←’U’; r1 ← r1 − 1; ... fi Thursday, December 2, 2010 fi SteuerEndliche Kontrolle einheit Zustand p (p,I,U,links,q) 15 RAM+ ohne MULT, DIV 4.7 Eine T (n)–zeitbeschränkte Mehrband DTM M kann durch eiSatz 7.6 ne RAM+ simuliert werden, die im uniformen Maß O(T (n))-zeitbeschränkt ist und die im logarithmischen Maß O(T (n) log T (n))-zeitbeschränkt ist. PROGRAMMSPEICHER DATENSPEICHER IC ALU R0 R1 R2 AC ... R6 if r0 =’p’ p q 6 5 A R B E I U T Akkumulator Position des Kopfes: j = 6 " ! # A R B E I T S B A N D #### # if rc(r1 ) =’I’ then rc(r1 ) ←’U’; r1 ← r1 − 1; r0 ←’q’ fi ... fi Thursday, December 2, 2010 SteuerEndliche Kontrolle einheit Zustand p (p,I,U,links,q) 15 4.8 Eine im logarithmischen Maß T (n)–zeitbeschränkte RAM+ Satz 7.8 (d. h. RAM ohne Multiplikation und Division) kann durch eine O(T 2 (n))–zeitbeschränkte 5–Band DTM M simuliert werden. 242 Kapitel 7: Parallele Algorithmen Die aktuelle Konfiguration einer RAM läßt sich eindeutig aus dem Inhalt der Datenspeicher und dem Befehlszähler IC bestimmen. Am Anfang einer Berechnung sind alle Register mit 0 initialisiert. Eine RAM wird durch ein Programm spezifiziert. Dies ist eine endliche, fortlaufend nummerierte Folge b0 , b1 , . . . von Befehlen aus einer vorgegebenen Befehlsmenge B. beliebige reelle Zahl Eingabeband " ! x1 x2 x3 x4 Lesekopf ··· # A R B E I T S B A N D #### # # PROGRAMM# x5 SPEICHER DATENSPEICHER IC ALU R0 R1 R2 c0 c1 c2 c3 Akkumulator AC SteuerEndliche Kontrolle einheit Schreibkopf Ausgabeband Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) !beliebige reelle Zahl Abbildung 7.2: RAM – Random Access Machine Seite 16 4.8 Eine im logarithmischen Maß T (n)–zeitbeschränkte RAM+ Satz 7.8 (d. h. RAM ohne Multiplikation und Division) kann durch eine O(T 2 (n))–zeitbeschränkte 5–Band DTM M simuliert werden. 242 # # # i1 # c1 # i2 Kapitel 7: Parallele Algorithmen # c2 Die# # · · · ikRAM#läßt sichckeindeutig # aus dem # Inhalt b ··· aktuelle Konfiguration einer der Datenspeicher und dem Befehlszähler IC bestimmen. Am Anfang einer Berechnung sind alle Register mit 0 initialisiert. x1 x2 x3 x4 x5 Eine RAM wird durch ein Programm spezifiziert. Dies ist eine endliche, fortlaufend nummerierte Folge b0 , b1 , . . . von Befehlen aus einer vorgegebenen Befehlsmenge B. beliebige reelle Zahl Eingabeband " ! x1 x2 x3 x4 Lesekopf ··· # A R B E I T S B A N D #### # # PROGRAMM# x5 SPEICHER DATENSPEICHER IC ALU R0 R1 R2 c0 c1 c2 c3 Akkumulator AC SteuerEndliche Kontrolle einheit Schreibkopf Ausgabeband Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) !beliebige reelle Zahl Abbildung 7.2: RAM – Random Access Machine Seite 16 4.8 Eine im logarithmischen Maß T (n)–zeitbeschränkte RAM+ Satz 7.8 (d. h. RAM ohne Multiplikation und Division) kann durch eine O(T 2 (n))–zeitbeschränkte 5–Band DTM M simuliert werden. 242 # # # i1 # c1 i2 # c2 Die# # · · · ikRAM#läßt sichckeindeutig # aus dem # Inhalt b ··· aktuelle Konfiguration einer der Datenspeicher und dem Befehlszähler IC bestimmen. Am Anfang einer Berechnung sind alle Register mit 0 initialisiert. c0 x1 # Kapitel 7: Parallele Algorithmen x2 x3 x4 x5 Eine RAM wird durch ein Programm spezifiziert. Dies ist eine endliche, fortlaufend nummerierte Folge b0 , b1 , . . . von Befehlen aus einer vorgegebenen Befehlsmenge B. beliebige reelle Zahl Eingabeband " ! x1 x2 x3 x4 Lesekopf ··· # A R B E I T S B A N D #### # # PROGRAMM# x5 SPEICHER DATENSPEICHER IC ALU R0 R1 R2 c0 c1 c2 c3 Akkumulator AC SteuerEndliche Kontrolle einheit Schreibkopf Ausgabeband Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) !beliebige reelle Zahl Abbildung 7.2: RAM – Random Access Machine Seite 16 4.8 Eine im logarithmischen Maß T (n)–zeitbeschränkte RAM+ Satz 7.8 (d. h. RAM ohne Multiplikation und Division) kann durch eine O(T 2 (n))–zeitbeschränkte 5–Band DTM M simuliert werden. 242 # # # i1 # c1 i2 # c2 Die# # · · · ikRAM#läßt sichckeindeutig # aus dem # Inhalt b ··· aktuelle Konfiguration einer der Datenspeicher und dem Befehlszähler IC bestimmen. Am Anfang einer Berechnung sind alle Register mit 0 initialisiert. c0 x1 # Kapitel 7: Parallele Algorithmen x2 x3 x4 x5 Simulation von ADD ∗25: Eine RAM wird durch ein Programm spezifiziert. Dies ist eine endliche, fortlaufend nummerierte Folge b0 , b1 , . . . von Befehlen aus einer vorgegebenen Befehlsmenge B. beliebige reelle Zahl Eingabeband " ! x1 x2 x3 x4 Lesekopf ··· # A R B E I T S B A N D #### # # PROGRAMM# x5 SPEICHER DATENSPEICHER IC ALU R0 R1 R2 c0 c1 c2 c3 Akkumulator AC SteuerEndliche Kontrolle einheit Schreibkopf Ausgabeband Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) !beliebige reelle Zahl Abbildung 7.2: RAM – Random Access Machine Seite 16 4.8 Eine im logarithmischen Maß T (n)–zeitbeschränkte RAM+ Satz 7.8 (d. h. RAM ohne Multiplikation und Division) kann durch eine O(T 2 (n))–zeitbeschränkte 5–Band DTM M simuliert werden. 242 # # # i1 # c1 i2 # c2 Die# # · · · ikRAM#läßt sichckeindeutig # aus dem # Inhalt b ··· aktuelle Konfiguration einer der Datenspeicher und dem Befehlszähler IC bestimmen. Am Anfang einer Berechnung sind alle Register mit 0 initialisiert. c0 x1 # Kapitel 7: Parallele Algorithmen x2 x3 x4 x5 Simulation von ADD ∗25: Eine RAM wird durch ein Programm spezifiziert. Dies ist eine endliche, fortlaufend nummerierte Folge b0 , b1 , . . . von Befehlen aus einer vorgegebenen Befehlsmenge B. beliebige reelle Zahl Eingabeband " ! x1 x2 x3 x4 Lesekopf ··· # A R B E I T S B A N D #### # # PROGRAMM# x5 SPEICHER DATENSPEICHER IC ALU R0 R1 R2 c0 c1 c2 c3 Akkumulator AC SteuerEndliche Kontrolle einheit Schreibkopf Ausgabeband Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) !beliebige reelle Zahl Abbildung 7.2: RAM – Random Access Machine Seite 16 4.8 Eine im logarithmischen Maß T (n)–zeitbeschränkte RAM+ Satz 7.8 (d. h. RAM ohne Multiplikation und Division) kann durch eine O(T 2 (n))–zeitbeschränkte 5–Band DTM M simuliert werden. T (n) × S(n) 242 # # # i1 # c1 i2 # c2 Die# # · · · ikRAM#läßt sichckeindeutig # aus dem # Inhalt b ··· aktuelle Konfiguration einer der Datenspeicher und dem Befehlszähler IC bestimmen. Am Anfang einer Berechnung sind alle Register mit 0 initialisiert. c0 x1 # Kapitel 7: Parallele Algorithmen x2 x3 x4 x5 Simulation von ADD ∗25: Eine RAM wird durch ein Programm spezifiziert. Dies ist eine endliche, fortlaufend nummerierte Folge b0 , b1 , . . . von Befehlen aus einer vorgegebenen Befehlsmenge B. beliebige reelle Zahl Eingabeband " ! x1 x2 x3 x4 Lesekopf ··· # A R B E I T S B A N D #### # # PROGRAMM# x5 SPEICHER DATENSPEICHER IC ALU R0 R1 R2 c0 c1 c2 c3 Akkumulator AC SteuerEndliche Kontrolle einheit Schreibkopf Ausgabeband Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) !beliebige reelle Zahl Abbildung 7.2: RAM – Random Access Machine Seite 16 4.8 Eine im logarithmischen Maß T (n)–zeitbeschränkte RAM+ Satz 7.8 (d. h. RAM ohne Multiplikation und Division) kann durch eine O(T 2 (n))–zeitbeschränkte 5–Band DTM M simuliert werden. T (n) × S(n) ≤ T (n) × T (n) 242 # # # i1 # c1 i2 # c2 Die# # · · · ikRAM#läßt sichckeindeutig # aus dem # Inhalt b ··· aktuelle Konfiguration einer der Datenspeicher und dem Befehlszähler IC bestimmen. Am Anfang einer Berechnung sind alle Register mit 0 initialisiert. c0 x1 # Kapitel 7: Parallele Algorithmen x2 x3 x4 x5 Simulation von ADD ∗25: Eine RAM wird durch ein Programm spezifiziert. Dies ist eine endliche, fortlaufend nummerierte Folge b0 , b1 , . . . von Befehlen aus einer vorgegebenen Befehlsmenge B. beliebige reelle Zahl Eingabeband " ! x1 x2 x3 x4 Lesekopf ··· # A R B E I T S B A N D #### # # PROGRAMM# x5 SPEICHER DATENSPEICHER IC ALU R0 R1 R2 c0 c1 c2 c3 Akkumulator AC SteuerEndliche Kontrolle einheit Schreibkopf Ausgabeband Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) !beliebige reelle Zahl Abbildung 7.2: RAM – Random Access Machine Seite 16 "Random access stored program machine" Invariance Thesis: There exists a standard class of machine models, which includes among others all variants of Turing Machines, all variants of RAM‘s and RASP‘s with logarithmic time measures, and also the RAM‘s and RASP‘s in the uniform time measure and logarithmic space measure, provided only standard arithmetical instructions of additive type are used. Machine models in this class simulate each other with polynomically bounded overhead in time, and constant factor overhead in space. Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 17 "Random access stored program machine" Invariance Thesis: There exists a standard class of machine models, which includes among others all variants of Turing Machines, all variants of RAM‘s and RASP‘s with logarithmic time measures, and also the RAM‘s and RASP‘s in the uniform time measure and logarithmic space measure, provided only standard arithmetical instructions of additive type are used. Machine models in this class simulate each other with polynomically bounded overhead in time, and constant factor overhead in space. die 1. Maschinenklasse Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 17 "Random access stored program machine" Invariance Thesis: There exists a standard class of machine models, which includes among others all variants of Turing Machines, all variants of RAM‘s and RASP‘s with logarithmic time measures, and also the RAM‘s and RASP‘s in the uniform time measure and logarithmic space measure, provided only standard arithmetical instructions of additive type are used. Machine models in this class simulate each other with polynomically bounded overhead in time, and constant factor overhead in space. die 1. Maschinenklasse RAM+ –Time(P OL) = RAM–Timelog (P OL) = P = DTM–Time(P OL) = DTM1 –Time(P OL) Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 17 "Random access stored program machine" Invariance Thesis: There exists a standard class of machine models, which includes among others all variants of Turing Machines, all variants of RAM‘s and RASP‘s with logarithmic time measures, and also the RAM‘s and RASP‘s in the uniform time measure and logarithmic space measure, provided only standard arithmetical instructions of additive type are used. Machine models in this class simulate each other with polynomically bounded overhead in time, and constant factor overhead in space. jede log-time die 1. Maschinenklasse beschränkte RAM RAM+ –Time(P OL) = RAM–Timelog (P OL) = P = DTM–Time(P OL) = DTM1 –Time(P OL) Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 17 "Random access stored program machine" Invariance Thesis: There exists a standard class of machine models, which includes among others all variants of Turing Machines, all variants of RAM‘s and RASP‘s with logarithmic time measures, and also the RAM‘s and RASP‘s in the uniform time measure and logarithmic space measure, provided only standard arithmetical instructions of additive type are used. Machine models in this class simulate each other with polynomically bounded overhead in time, and constant factor overhead in space. jede log-time die 1. Maschinenklasse beschränkte RAM RAM+ –Time(P OL) = RAM–Timelog (P OL) = P = DTM–Time(P OL) = DTM1 –Time(P OL) nur ein Band Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 17 "Random access stored program machine" Invariance Thesis: There exists a standard class of machine models, which includes among others all variants of Turing Machines, all variants of RAM‘s and RASP‘s with logarithmic time measures, and also the RAM‘s and RASP‘s in the uniform time measure and logarithmic space measure, provided only standard arithmetical instructions of additive type are used. Machine models in this class simulate each other with polynomically bounded overhead in time, and constant factor overhead in space. jede log-time die 1. Maschinenklasse beschränkte RAM RAM+ –Time(P OL) = RAM–Timelog (P OL) = P = DTM–Time(P OL) = DTM1 –Time(P OL) nur ein Band die 2. Maschinenklasse Formale Grundlagen der Informatik II Thursday, December 2, 2010 Para!elrechner Kap 4: Para!ele Algorithmen (Teil 1) Seite 17 7.2 4.2 Parallele Random-Access-Maschine (PRAM) 2 Schreib-Konflikt gemeinsamer Speicher Es gibt zwei grundlegende Modelle paralleler Computer mit globalem Speiche M M0 M1 M2 M3 . . . . . . ...... MIMD-Computer (M ultiple I nstructions M ultiple Data) – jeder Prozesso elles (eigenes) Programm aus P1 R1,0 R1,1 R1,2 P2 R2,0 R2,1 R2,2 P3 SIMD-Computer (S ingle I nstructions M ultiple Data) onsart Rfür .. R2 einheitlich. R3 .. 1 alle Prozessoren . . R3,0 R3,1 R3,2 – in jedem Schritt .. . lokaler Speicher PRAMs sind heutzutage das Hauptmodell paralleler Rechner für Entwurf un leler Algorithmen. Dafür sind gibt esfdrei Gründe: Die Programme ür alle Prozessoren identisch! Um die PID LOAD(PID), neuer Befehl: 1. PRAMaber abstrahieren von Ebenen algorithmischer Komplexität, die Sync Formale Grundlagen der Informatik IILokalität vonKap 4: Para!eleNetztopologie Algorithmen (Teil 1) Seite 18 b verlässigkeit, und Kommunikation lDaten, ädt. Thursday, December 2, 2010 4.2.2 EREW PRAM (Exclusive Read, Exclusive Write): Simultane READs und WRIT Es sind nicht erlaubt. Schreib-Konflikt 19 Thursday, December 2, 2010 4.2.2 EREW PRAM (Exclusive Read, Exclusive Write): Simultane READs und WRIT Es sind nicht erlaubt. CREW PRAM (Concurrent Read, Exclusive Write): Gleichzeitiges Lesen erlaubt, jedoch nur exklusives Schreiben. Schreib-Konflikt 19 Thursday, December 2, 2010 4.2.2 EREW PRAM (Exclusive Read, Exclusive Write): Simultane READs und WRIT Es sind nicht erlaubt. CREW PRAM (Concurrent Read, Exclusive Write): Gleichzeitiges Lesen erlaubt, jedoch nur exklusives Schreiben. Schreib-Konflikt CRCW PRAM (Concurrent Read, Concurrent Write): Simultanes Lesen ist uneingeschränkt erlaubt, simultanes Schreiben ist ebenfalls erlaubt. 19 Thursday, December 2, 2010 4.2.2 EREW PRAM (Exclusive Read, Exclusive Write): Simultane READs und WRIT Es sind nicht erlaubt. CREW PRAM (Concurrent Read, Exclusive Write): Gleichzeitiges Lesen erlaubt, jedoch nur exklusives Schreiben. Schreib-Konflikt CRCW PRAM (Concurrent Read, Concurrent Write): Simultanes Lesen ist uneingeschränkt erlaubt, simultanes Schreiben ist ebenfalls erlaubt. CRCWcom PRAM (common): Ein gleichzeitiges Schreiben in ein Register Mj ist nur zulässig, wenn alle beteiligten Prozessoren versuchen denselben Wert zu schreiben. 19 Thursday, December 2, 2010 4.2.2 EREW PRAM (Exclusive Read, Exclusive Write): Simultane READs und WRIT Es sind nicht erlaubt. CREW PRAM (Concurrent Read, Exclusive Write): Gleichzeitiges Lesen erlaubt, jedoch nur exklusives Schreiben. Schreib-Konflikt CRCW PRAM (Concurrent Read, Concurrent Write): Simultanes Lesen ist uneingeschränkt erlaubt, simultanes Schreiben ist ebenfalls erlaubt. CRCWcom PRAM (common): Ein gleichzeitiges Schreiben in ein Register Mj ist nur zulässig, wenn alle beteiligten Prozessoren versuchen denselben Wert zu schreiben. CRCWarb PRAM (arbitrary): Wenn einige Prozessoren versuchen, in ein Register zu schreiben, ist einer erfolgreich. Es ist aber nicht a priori festgelegt, welcher. 19 Thursday, December 2, 2010 4.2.2 EREW PRAM (Exclusive Read, Exclusive Write): Simultane READs und WRIT Es sind nicht erlaubt. CREW PRAM (Concurrent Read, Exclusive Write): Gleichzeitiges Lesen erlaubt, jedoch nur exklusives Schreiben. Schreib-Konflikt CRCW PRAM (Concurrent Read, Concurrent Write): Simultanes Lesen ist uneingeschränkt erlaubt, simultanes Schreiben ist ebenfalls erlaubt. CRCWcom PRAM (common): Ein gleichzeitiges Schreiben in ein Register Mj ist nur zulässig, wenn alle beteiligten Prozessoren versuchen denselben Wert zu schreiben. CRCWarb PRAM (arbitrary): Wenn einige Prozessoren versuchen, in ein Register zu schreiben, ist einer erfolgreich. Es ist aber nicht a priori festgelegt, welcher. CRCWpri PRAM (priority): Wenn einige Prozessoren versuchen, in ein Register zu schreiben, ist der mit dem kleinsten Index erfolgreich (Man sagt, dieser besitzt die höchste Priorität). 19 Thursday, December 2, 2010 7.2.3 4.2.3 Komplexitätsmaße der PRAM TM(n) 4.10 Die uniforme (logarithmische) Zeitkomplexität Definition 7.10 timeM (x) einer PRAM M auf eine Eingbe x ist entsprechend wie für die RAM in Definition 7.4 definiert, wobei die synchronen Schritte bis zur Termination gerechnet werden. Die Zeitkomplexität TM (n) von M ist wieder das Maximum aller timeM (x), ( ), wobei das Maximum über alle Eingaben x der uniformen (logarithmischen) Größe n gerechnet wird. n ∈ IN Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 20 PM(n) Definition Die Prozessorkomplexität procM (x) einer PRAM M auf einer Eingabe x ist: procM (x) = max{i | i = 1 oder Pi führt ein W RIT E aus} Die Prozessorkomplexität PM (n) von M ist das Maximum aller procM (x), wobei das Maximum über alle Eingaben der uniformen (logarithmischen) Größe n gebildet wird, gemeinsamer Speicher M M0 P1 R1,0 R1,1 R1,2 R1 .. . Formale Grundlagen der Informatik II Thursday, December 2, 2010 M1 M2 M3 P2 R2 ... R2,0 R2,1 R2,2 .. . ... ...... P3 R3 R3,0 R3,1 R3,2 .. . Kap 4: Para!ele Algorithmen (Teil 1) lokaler Speicher Seite 21 Definition 7.12 4.12 Zwei weitere wichtige Komplexitätsmaße für PRAMs sind das Prozessor-Zeit-Produkt für die Eingabe x: ptM (x) = timeM (x) · procM (x) , Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 22 Definition 7.12 4.12 Zwei weitere wichtige Komplexitätsmaße für PRAMs sind das Prozessor-Zeit-Produkt für die Eingabe x: ptM (x) = timeM (x) · procM (x) und Work, das die Gesamtzahl der Schritte aller Prozessoren, die während der Berechnung aktiv sind, nach oben hin abschätzt. Letztere wird als workM (x) Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 22 Definition 7.12 4.12 Zwei weitere wichtige Komplexitätsmaße für PRAMs sind das Prozessor-Zeit-Produkt für die Eingabe x: ptM (x) = timeM (x) · procM (x) und Work, das die Gesamtzahl der Schritte aller Prozessoren, die während der Berechnung aktiv sind, nach oben hin abschätzt. Letztere wird als Operationenkomplexität workM (x) WM(n) Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 22 Definition 7.12 4.12 Zwei weitere wichtige Komplexitätsmaße für PRAMs sind das Prozessor-Zeit-Produkt für die Eingabe x: ptM (x) = timeM (x) · procM (x) und Work, das die Gesamtzahl der Schritte aller Prozessoren, die während der Berechnung aktiv sind, nach oben hin abschätzt. Letztere wird als Operationenkomplexität workM (x) WM(n) bezeichnet. Die Operationenkomplexität WM (n) ist dann wieder das Maximum aller workM (x), wobei das Maximum über alle Eingaben x der uniformen (logarithmischen) Größe n gerechnet wird. Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 22 ein Beispiel 4.12 Zwei weitere wichtige Komplexitätsmaße für PRAMs Definition 7.12 sind das Prozessor-Zeit-Produkt für die Eingabe x: ptM (x) = timeM (x) · procM (x) und Work, das die Gesamtzahl der Schritte aller Prozessoren, die während der Berechnung aktiv sind nach oben hin abschätzt. Letztere wird als Operationenkomplexität workM (x) WM(n) Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 24 Seite 23 ein Beispiel 4.12 Zwei weitere wichtige Komplexitätsmaße für PRAMs Definition 7.12 sind das Prozessor-Zeit-Produkt für die Eingabe x: ptM (x) = timeM (x) · procM (x) und Work, das die Gesamtzahl der Schritte aller Prozessoren, die während der Berechnung aktiv sind nach oben hin abschätzt. Letztere wird als Operationenkomplexität workM (x) WM(n) Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 0 Schritte 0 Schritte 0 Schritte 7 Schritte 3 Schritte 11 Schritte M0 M1 M2 M3 M4 M5 24 Seite 23 ein Beispiel 4.12 Zwei weitere wichtige Komplexitätsmaße für PRAMs Definition 7.12 sind das Prozessor-Zeit-Produkt für die Eingabe x: ptM (x) = timeM (x) · procM (x) und Work, das die Gesamtzahl der Schritte aller Prozessoren, die während der Berechnung aktiv sind nach oben hin abschätzt. Letztere wird als Operationenkomplexität workM (x) WM(n) Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 0 Schritte 0 Schritte 0 Schritte 7 Schritte 3 Schritte 11 Schritte procM(x) = PM(n) = M0 M1 M2 M3 M4 M5 24 Seite 23 ein Beispiel 4.12 Zwei weitere wichtige Komplexitätsmaße für PRAMs Definition 7.12 sind das Prozessor-Zeit-Produkt für die Eingabe x: ptM (x) = timeM (x) · procM (x) und Work, das die Gesamtzahl der Schritte aller Prozessoren, die während der Berechnung aktiv sind nach oben hin abschätzt. Letztere wird als Operationenkomplexität workM (x) WM(n) Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 0 Schritte 0 Schritte 0 Schritte 7 Schritte 3 Schritte 11 Schritte procM(x) = PM(n) = 3 M0 M1 M2 M3 M4 M5 24 Seite 23 ein Beispiel 4.12 Zwei weitere wichtige Komplexitätsmaße für PRAMs Definition 7.12 sind das Prozessor-Zeit-Produkt für die Eingabe x: ptM (x) = timeM (x) · procM (x) und Work, das die Gesamtzahl der Schritte aller Prozessoren, die während der Berechnung aktiv sind nach oben hin abschätzt. Letztere wird als Operationenkomplexität workM (x) WM(n) procM(x) = PM(n) = 3 M0 M1 M2 M3 M4 M5 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 0 Schritte 0 Schritte 0 Schritte 7 Schritte 3 Schritte 11 Schritte timeM(x) = TM(n) = 24 Seite 23 ein Beispiel 4.12 Zwei weitere wichtige Komplexitätsmaße für PRAMs Definition 7.12 sind das Prozessor-Zeit-Produkt für die Eingabe x: ptM (x) = timeM (x) · procM (x) und Work, das die Gesamtzahl der Schritte aller Prozessoren, die während der Berechnung aktiv sind nach oben hin abschätzt. Letztere wird als Operationenkomplexität workM (x) WM(n) procM(x) = PM(n) = 3 M0 M1 M2 M3 M4 M5 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 0 Schritte 0 Schritte 0 Schritte 7 Schritte 3 Schritte 11 Schritte timeM(x) = TM(n) = 11 24 Seite 23 ein Beispiel 4.12 Zwei weitere wichtige Komplexitätsmaße für PRAMs Definition 7.12 sind das Prozessor-Zeit-Produkt für die Eingabe x: ptM (x) = timeM (x) · procM (x) und Work, das die Gesamtzahl der Schritte aller Prozessoren, die während der Berechnung aktiv sind nach oben hin abschätzt. Letztere wird als Operationenkomplexität workM (x) WM(n) procM(x) = PM(n) = 3 M0 M1 M2 M3 M4 M5 timeM(x) = TM(n) = 11 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 0 Schritte 0 Schritte 0 Schritte 7 Schritte 3 Schritte 11 Schritte workM(x) = WM(n) = 24 Seite 23 ein Beispiel 4.12 Zwei weitere wichtige Komplexitätsmaße für PRAMs Definition 7.12 sind das Prozessor-Zeit-Produkt für die Eingabe x: ptM (x) = timeM (x) · procM (x) und Work, das die Gesamtzahl der Schritte aller Prozessoren, die während der Berechnung aktiv sind nach oben hin abschätzt. Letztere wird als Operationenkomplexität workM (x) WM(n) procM(x) = PM(n) = 3 M0 M1 M2 M3 M4 M5 timeM(x) = TM(n) = 11 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 0 Schritte 0 Schritte 0 Schritte 7 Schritte 3 Schritte 11 Schritte workM(x) = WM(n) = 21 24 Seite 23 ein Beispiel 4.12 Zwei weitere wichtige Komplexitätsmaße für PRAMs Definition 7.12 sind das Prozessor-Zeit-Produkt für die Eingabe x: ptM (x) = timeM (x) · procM (x) und Work, das die Gesamtzahl der Schritte aller Prozessoren, die während der Berechnung aktiv sind nach oben hin abschätzt. Letztere wird als Operationenkomplexität workM (x) WM(n) procM(x) = PM(n) = 3 M0 M1 M2 M3 M4 M5 timeM(x) = TM(n) = 11 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 0 Schritte 0 Schritte 0 Schritte 7 Schritte 3 Schritte ptM(x) = 33 11 Schritte workM(x) = WM(n) = 21 24 Seite 23 ein Beispiel 4.12 Zwei weitere wichtige Komplexitätsmaße für PRAMs Definition 7.12 sind das Prozessor-Zeit-Produkt für die Eingabe x: ptM (x) = timeM (x) · procM (x) und Work, das die Gesamtzahl der Schritte aller Prozessoren, die während der Berechnung aktiv sind nach oben hin abschätzt. Letztere wird als Operationenkomplexität workM (x) WM(n) procM(x) = PM(n) = 3 M0 M1 M2 M3 M4 M5 timeM(x) = TM(n) = 11 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 0 Schritte 0 Schritte 0 Schritte 7 Schritte oft: ptM(x) ≈ workM(x) 3 Schritte ptM(x) = 33 11 Schritte workM(x) = WM(n) = 21 24 Seite 23 gemeinsamer Speicher P1 P2 sequentie!er Alg. mit T(n) Sei Θ(TP∗ (n)) die beste Zeitkomplexität für ein Problem P unter allen sequentiellen Algorithmen, die das Problem P lösen (oft wird auch Pr para!eler Alg. gemeinsamer Speicher P1 P2 Formale Grundlagen der Informatik II Thursday, December 2, 2010 T(n) = ? Pr Kap 4: Para!ele Algorithmen (Teil 1) 24 Seite gemeinsamer Speicher P1 P2 sequentie!er Alg. mit T(n) Sei Θ(TP∗ (n)) die beste Zeitkomplexität für ein Problem P unter allen sequentiellen Algorithmen, die das Problem P lösen (oft wird auch Pr para!eler Alg. gemeinsamer Speicher P1 P2 Formale Grundlagen der Informatik II Thursday, December 2, 2010 T(n) = ? besser! Pr Kap 4: Para!ele Algorithmen (Teil 1) 24 Seite gemeinsamer Speicher P1 P2 sequentie!er Alg. mit T(n) Sei Θ(TP∗ (n)) die beste Zeitkomplexität für ein Problem P unter allen sequentiellen Algorithmen, die das Problem P lösen (oft wird auch Pr para!eler Alg. gemeinsamer Speicher T(n) = ? besser! optimal ??? P1 P2 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Pr Kap 4: Para!ele Algorithmen (Teil 1) 24 Seite gemeinsamer Speicher P1 P2 sequentie!er Alg. mit T(n) Sei Θ(TP∗ (n)) die beste Zeitkomplexität für ein Problem P unter allen sequentiellen Algorithmen, die das Problem P lösen (oft wird auch Pr para!eler Alg. gemeinsamer Speicher T(n) = ? besser! optimal ??? P1 P2 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Pr Der Alg. heißt optimal, falls Kap 4: Para!ele Algorithmen (Teil 1) 24 Seite gemeinsamer Speicher P1 P2 sequentie!er Alg. mit T(n) Sei Θ(TP∗ (n)) die beste Zeitkomplexität für ein Problem P unter allen sequentiellen Algorithmen, die das Problem P lösen (oft wird auch Pr para!eler Alg. gemeinsamer Speicher T(n) = ? besser! optimal ??? P1 P2 Pr Der Alg. heißt optimal, falls n: WA (n) = Θ(TP∗ (n)). Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 24 Seite gemeinsamer Speicher P1 P2 sequentie!er Alg. mit T(n) Sei Θ(TP∗ (n)) die beste Zeitkomplexität für ein Problem P unter allen sequentiellen Algorithmen, die das Problem P lösen (oft wird auch Pr P1 P2 P3 gemeinsamer Speicher para!eler Alg. T(n) = ? besser! optimal ??? Formale Grundlagen der Informatik II Thursday, December 2, 2010 7 Schritte WA(n) = 21 Pr 3 Schritte P2 11 Schritte P1 Der Alg. heißt optimal, falls n: WA (n) = Θ(TP∗ (n)). Kap 4: Para!ele Algorithmen (Teil 1) 24 Seite gemeinsamer Speicher P1 P2 sequentie!er Alg. mit T(n) Sei Θ(TP∗ (n)) die beste Zeitkomplexität für ein Problem P unter allen sequentiellen Algorithmen, die das Problem P lösen (oft wird auch Pr P1 P2 P3 gemeinsamer Speicher para!eler Alg. T(n) = ? besser! optimal ??? Formale Grundlagen der Informatik II Thursday, December 2, 2010 7 Schritte WA(n) = 21 Pr 3 Schritte P2 11 Schritte P1 Der Alg. heißt optimal, falls n: WA (n) = Θ(TP∗ (n)). Kap 4: Para!ele Algorithmen (Teil 1) 24 Seite 4.13 (Brent’s scheduling principle) Wenn man eine BerechSatz 7.13 nung auf m = max xi Prozessoren in Zeit t ausführen kann, wobei xi die Anzahl der Operationen im i-ten Schritt ist, dann kann man auf p<m Prozessoren dieselbe Berechnung in der Zeit x t+� � p ausführen, wobei x = � xi Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 25 4.13 (Brent’s scheduling principle) Wenn man eine BerechSatz 7.13 nung auf m = max xi Prozessoren in Zeit t ausführen kann, wobei xi die Anzahl der Operationen im i-ten Schritt ist, dann kann man auf p<m Prozessoren dieselbe Berechnung in der Zeit x t+� � p xi Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 0 Schritte 0 Schritte 0 Schritte 7 Schritte 3 Schritte M0 M1 M2 M3 M4 M5 11 Schritte ausführen, wobei x = � Seite 25 4.13 (Brent’s scheduling principle) Wenn man eine BerechSatz 7.13 nung auf m = max xi Prozessoren in Zeit t ausführen kann, wobei xi die Anzahl der Operationen im i-ten Schritt ist, dann kann man auf p<m 3 Prozessoren dieselbe Berechnung in der Zeit x t+� � p xi Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 0 Schritte 0 Schritte 0 Schritte 7 Schritte 3 Schritte M0 M1 M2 M3 M4 M5 11 Schritte ausführen, wobei x = � Seite 25 4.13 (Brent’s scheduling principle) Wenn man eine BerechSatz 7.13 nung auf m = max xi Prozessoren in Zeit t ausführen kann, wobei xi die Anzahl der Operationen im i-ten Schritt ist, dann kann man auf p<m 2 3 Prozessoren dieselbe Berechnung in der Zeit x t+� � p xi Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 0 Schritte 0 Schritte 0 Schritte 7 Schritte 3 Schritte M0 M1 M2 M3 M4 M5 11 Schritte ausführen, wobei x = � Seite 25 4.13 (Brent’s scheduling principle) Wenn man eine BerechSatz 7.13 nung auf m = max xi Prozessoren in Zeit t ausführen kann, wobei xi die Anzahl der Operationen im i-ten Schritt ist, dann kann man auf p<m 2 3 Prozessoren dieselbe Berechnung in der Zeit x t+� � p ausführen, wobei x = � xi xi M0 M1 M2 M3 M4 M5 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 0 Schritte 0 Schritte 0 Schritte 7 Schritte 3 Schritte Σxi = 21 = work(y) 11 Schritte 3 3 3 2 2 2 2 1 1 1 1 Seite 25 4.13 (Brent’s scheduling principle) Wenn man eine BerechSatz 7.13 nung auf m = max xi Prozessoren in Zeit t ausführen kann, wobei xi die Anzahl der Operationen im i-ten Schritt ist, dann kann man auf p<m 2 3 Prozessoren dieselbe Berechnung in der Zeit x t+� � p ausführen, wobei x = � 21 = 11 + � � = 11 + 10 = 21 2 xi xi M0 M1 M2 M3 M4 M5 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 0 Schritte 0 Schritte 0 Schritte 7 Schritte 3 Schritte Σxi = 21 = work(y) 11 Schritte 3 3 3 2 2 2 2 1 1 1 1 Seite 25 4.13 (Brent’s scheduling principle) Wenn man eine BerechSatz 7.13 nung auf m = max xi Prozessoren in Zeit t ausführen kann, wobei xi die Anzahl der Operationen im i-ten Schritt ist, dann kann man auf p<m 2 3 Prozessoren dieselbe Berechnung in der Zeit x t+� � p xi M0 M1 M2 M3 M4 M5 3 3 3 2 2 2 2 1 1 1 1 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 0 Schritte 0 Schritte 0 Schritte 11 Schritte Σxi = 21 = work(y) ? 7 Schritte xi 3 Schritte ausführen, wobei x = � 21 = 11 + � � = 11 + 10 = 21 2 Seite 25 4.13 (Brent’s scheduling principle) Wenn man eine BerechSatz 7.13 nung auf m = max xi Prozessoren in Zeit t ausführen kann, wobei xi die Anzahl der Operationen im i-ten Schritt ist, dann kann man auf 1 p<m 2 3 Prozessoren dieselbe Berechnung in der Zeit x t+� � p xi M0 M1 M2 M3 M4 M5 3 3 3 2 2 2 2 1 1 1 1 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 0 Schritte 0 Schritte 0 Schritte 11 Schritte Σxi = 21 = work(y) ? 7 Schritte xi 3 Schritte ausführen, wobei x = � 21 = 11 + � � = 11 + 10 = 21 2 Seite 25 4.13 (Brent’s scheduling principle) Wenn man eine BerechSatz 7.13 nung auf m = max xi Prozessoren in Zeit t ausführen kann, wobei xi die Anzahl der Operationen im i-ten Schritt ist, dann kann man auf 1 p<m 2 3 Prozessoren dieselbe Berechnung in der Zeit M0 M1 M2 M3 M4 M5 3 3 3 2 2 2 2 1 1 1 1 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 0 Schritte 11 Schritte Σxi = 21 = work(y) ? 0 Schritte xi 0 Schritte xi = 11 + � 21 1 � = 11 + 21 = 32 7 Schritte ausführen, wobei x = � 21 = 11 + � � = 11 + 10 = 21 2 3 Schritte x t+� � p Seite 25 4.13 (Brent’s scheduling principle) Wenn man eine BerechSatz 7.13 nung auf m = max xi Prozessoren in Zeit t ausführen kann, wobei xi die Anzahl der Operationen im i-ten Schritt ist, dann kann man auf 1 p<m 2 3 Prozessoren dieselbe Berechnung in der Zeit 3 3 3 2 2 2 2 1 1 1 1 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 0 Schritte Σxi = 21 = work(y) ? 0 Schritte p=3 M0 M1 M2 M3 M4 M5 0 Schritte M0 M1 M2 M3 xi 7 Schritte xi = 11 + � 21 1 � = 11 + 21 = 32 3 Schritte ausführen, wobei x = � 21 = 11 + � � = 11 + 10 = 21 2 11 Schritte x t+� � p Seite 25 4.13 (Brent’s scheduling principle) Wenn man eine BerechSatz 7.13 nung auf m = max xi Prozessoren in Zeit t ausführen kann, wobei xi die Anzahl der Operationen im i-ten Schritt ist, dann kann man auf 1 p<m 2 3 Prozessoren dieselbe Berechnung in der Zeit Σxi = 21 = work(y) Formale Grundlagen der Informatik II Thursday, December 2, 2010 ? Kap 4: Para!ele Algorithmen (Teil 1) 0 Schritte 8 2+� �=2+2=4 3 3 3 3 2 2 2 2 1 1 1 1 0 Schritte p=3 M0 M1 M2 M3 M4 M5 0 Schritte M0 M1 M2 M3 xi 7 Schritte xi = 11 + � 21 1 � = 11 + 21 = 32 3 Schritte ausführen, wobei x = � 21 = 11 + � � = 11 + 10 = 21 2 11 Schritte x t+� � p Seite 25 4.13 (Brent’s scheduling principle) Wenn man eine BerechSatz 7.13 nung auf m = max xi Prozessoren in Zeit t ausführen kann, wobei xi die Anzahl der Operationen im i-ten Schritt ist, dann kann man auf 1 p<m 2 3 Prozessoren dieselbe Berechnung in der Zeit M0 M1 M2 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Σxi = 21 = work(y) ? Kap 4: Para!ele Algorithmen (Teil 1) 0 Schritte 8 2+� �=2+2=4 3 3 3 3 2 2 2 2 1 1 1 1 0 Schritte p=3 M0 M1 M2 M3 M4 M5 0 Schritte M0 M1 M2 M3 xi 7 Schritte xi = 11 + � 21 1 � = 11 + 21 = 32 3 Schritte ausführen, wobei x = � 21 = 11 + � � = 11 + 10 = 21 2 11 Schritte x t+� � p Seite 25 t t t � � � xi xi xi x lt � � = � � �� ≤ � ( + 1)� = t + � � p p p p 1 M0 M1 M2 M3 1 1 p=3 8 2+� �=2+2=4 3 M0 M1 M2 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 26 t t t � � � xi xi xi x lt � � = � � �� ≤ � ( + 1)� = t + � � p p p p 1 M0 M1 M2 M3 1 1 p=3 8 2+� �=2+2=4 3 M0 M1 M2 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 26 Satz 7.13 4.13 (Brent’s scheduling principle) Wenn man eine Berechnung auf m = max xi Prozessoren in Zeit t ausführen kann, wobei xi die Anzahl der Operationen im i-ten Schritt ist, dann kann man auf p<m Prozessoren dieselbe Berechnung in der Zeit x t+� � p ausführen, wobei x = � xi 4.14 Wenn man eine Berechnung, die O(n) sequentielle Zeit braucht, Korollar 7.14 � � auf n Prozessoren in O(log n) Zeit ausführen kann, dann kann man diese Berechnung auf O logn n Prozessoren in Zeit � � O(log n) ausführen (d. h. in optimaler Zeit: O(n) = O(log n) · O logn n ). Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 27 Satz 7.13 4.13 (Brent’s scheduling principle) Wenn man eine Berechnung auf m = max xi Prozessoren in Zeit t ausführen kann, wobei xi die Anzahl der Operationen im i-ten Schritt ist, dann kann man auf Prozessoren dieselbe Berechnung in der Zeit x t+� � p ausführen, wobei x = � O(n) p<m xi 4.14 Wenn man eine Berechnung, die O(n) sequentielle Zeit braucht, Korollar 7.14 � � auf n Prozessoren in O(log n) Zeit ausführen kann, dann kann man diese Berechnung auf O logn n Prozessoren in Zeit � � O(log n) ausführen (d. h. in optimaler Zeit: O(n) = O(log n) · O logn n ). Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 27 Satz 7.13 4.13 (Brent’s scheduling principle) Wenn man eine Berechnung auf m = max xi Prozessoren in Zeit t ausführen kann, wobei xi die Anzahl der Operationen im i-ten Schritt ist, dann kann man auf n x t+� � p ausführen, wobei x = � O(log n) Prozessoren dieselbe Berechnung in der Zeit O(n) p<m xi 4.14 Wenn man eine Berechnung, die O(n) sequentielle Zeit braucht, Korollar 7.14 � � auf n Prozessoren in O(log n) Zeit ausführen kann, dann kann man diese Berechnung auf O logn n Prozessoren in Zeit � � O(log n) ausführen (d. h. in optimaler Zeit: O(n) = O(log n) · O logn n ). Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 27 Satz 7.13 4.13 (Brent’s scheduling principle) Wenn man eine Berechnung auf m = max xi Prozessoren in Zeit t ausführen kann, wobei xi die Anzahl der Operationen im i-ten Schritt ist, dann kann man auf ausführen, wobei x = � O(log n) O(n) Prozessoren dieselbe Berechnung in der Zeit O(log n) n p<m x t+� � p n log n xi 4.14 Wenn man eine Berechnung, die O(n) sequentielle Zeit braucht, Korollar 7.14 � � auf n Prozessoren in O(log n) Zeit ausführen kann, dann kann man diese Berechnung auf O logn n Prozessoren in Zeit � � O(log n) ausführen (d. h. in optimaler Zeit: O(n) = O(log n) · O logn n ). Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 27 Satz 7.13 4.13 (Brent’s scheduling principle) Wenn man eine Berechnung auf m = max xi Prozessoren in Zeit t ausführen kann, wobei xi die Anzahl der Operationen im i-ten Schritt ist, dann kann man auf ausführen, wobei x = � O(log n) O(n) Prozessoren dieselbe Berechnung in der Zeit O(log n) n p<m x t+� � p n log n xi x m 4.14 Wenn man eine Berechnung, die O(n) sequentielle Zeit braucht, Korollar 7.14 � � auf n Prozessoren in O(log n) Zeit ausführen kann, dann kann man diese Berechnung auf O logn n Prozessoren in Zeit � � O(log n) ausführen (d. h. in optimaler Zeit: O(n) = O(log n) · O logn n ). t p Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 27 Satz 7.13 4.13 (Brent’s scheduling principle) Wenn man eine Berechnung auf m = max xi Prozessoren in Zeit t ausführen kann, wobei xi die Anzahl der Operationen im i-ten Schritt ist, dann kann man auf ausführen, wobei x = � O(log n) O(n) Prozessoren dieselbe Berechnung in der Zeit O(log n) n p<m x t+� � p n log n xi x m 4.14 Wenn man eine Berechnung, die O(n) sequentielle Zeit braucht, Korollar 7.14 � � auf n Prozessoren in O(log n) Zeit ausführen kann, dann kann man diese Berechnung auf O logn n Prozessoren in Zeit � � O(log n) ausführen (d. h. in optimaler Zeit: O(n) = O(log n) · O logn n ). t p x n t + � � = log n + � n � ∈ O(log n) p log n Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 27 4.2.4 7.2.4 4.2.4 Beispiele für PRAM-Algorithmen Um die Algorithmen zu beschreiben, benutzen wir den parallelen Ausdruck par [a ≤ i ≤ b] Si um zu beschreiben, dass die Anweisungen Si für alle i mit a ≤ i ≤ b parallel ausgeführt werden sollen. 4.15 Maximum finden Gegeben: n = 2m natürliche Zahlen Beispiel 7.15 an , an+1 , . . . , a2n−1 . Gesucht wird ihr Maximum. Algorithmus (für EREW-PRAM): for l ← m − 1 down to 0 do par [2l ≤ j ≤ 2l+1 − 1] aj ← max{a2j , a2j+1 } Erklärung: Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 28 a1 10 l=0 l=1 l=2 a8 3 a2 10 a3 9 a4 10 a5 2 a9 10 a6 a7 9 7 a10 a11 a12 a13 a14 a15 2 1 4 9 6 7 Abbildung 7.9: Maximum finden durch die PRAM 4.15 Maximum finden Gegeben: n = 2m natürliche Zahlen Beispiel 7.15 an , an+1 , . . . , a2n−1 . Gesucht wird ihr Maximum. Algorithmus (für EREW-PRAM): for l ← m − 1 down to 0 do par [2l ≤ j ≤ 2l+1 − 1] aj ← max{a2j , a2j+1 } Erklärung: Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 29 a1 10 l=0 l=1 l=2 a8 3 a2 10 a3 9 a4 10 a5 2 a9 10 a6 a7 9 7 a10 a11 a12 a13 a14 a15 2 1 4 9 6 7 Abbildung 7.9: Maximum finden durch die PRAM 4.15 Maximum finden Gegeben: n = 2m natürliche Zahlen Beispiel 7.15 an , an+1 , . . . , a2n−1 . Gesucht wird ihr Maximum. Algorithmus (für EREW-PRAM): for l ← m − 1 down to 0 do par [2l ≤ j ≤ 2l+1 − 1] aj ← max{a2j , a2j+1 } Erklärung: Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) m= 3 l= 2 j= 4 2j= 8 Seite 29 a1 10 l=0 l=1 l=2 a8 3 a2 10 a3 9 a4 10 a5 2 a9 10 a6 a7 9 7 a10 a11 a12 a13 a14 a15 2 1 4 9 6 7 Abbildung 7.9: Maximum finden durch die PRAM 4.15 Maximum finden Gegeben: n = 2m natürliche Zahlen Beispiel 7.15 an , an+1 , . . . , a2n−1 . Gesucht wird ihr Maximum. Algorithmus (für EREW-PRAM): for l ← m − 1 down to 0 do par [2l ≤ j ≤ 2l+1 − 1] aj ← max{a2j , a2j+1 } Erklärung: Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) m= 3 l= 2 j= 4 2j= 8 Seite 29 a1 10 l=0 l=1 l=2 a8 3 a2 10 a3 9 a4 10 a5 2 a9 10 a6 a7 9 7 a10 a11 a12 a13 a14 a15 2 1 4 9 6 7 Abbildung 7.9: Maximum finden durch die PRAM 4.15 Maximum finden Gegeben: n = 2m natürliche Zahlen Beispiel 7.15 an , an+1 , . . . , a2n−1 . Gesucht wird ihr Maximum. Algorithmus (für EREW-PRAM): for l ← m − 1 down to 0 do par [2l ≤ j ≤ 2l+1 − 1] aj ← max{a2j , a2j+1 } Erklärung: Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) m= 3 l= 2 j= 4 2j= 8 Seite 29 a1 10 l=0 l=1 l=2 a8 3 a2 10 a3 9 a4 10 a5 2 a9 10 a6 a7 9 7 a10 a11 a12 a13 a14 a15 2 1 4 9 6 7 Abbildung 7.9: Maximum finden durch die PRAM 4.15 Maximum finden Gegeben: n = 2m natürliche Zahlen Beispiel 7.15 an , an+1 , . . . , a2n−1 . Gesucht wird ihr Maximum. Algorithmus (für EREW-PRAM): for l ← m − 1 down to 0 do par [2l ≤ j ≤ 2l+1 − 1] aj ← max{a2j , a2j+1 } Erklärung: Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) m= 3 l= 2 j= 4 2j= 8 Seite 29 a1 10 l=0 l=1 l=2 a8 3 a2 10 a3 9 a4 10 a5 2 a9 10 a6 a7 9 7 a10 a11 a12 a13 a14 a15 2 1 4 9 6 7 Abbildung 7.9: Maximum finden durch die PRAM 4.15 Maximum finden Gegeben: n = 2m natürliche Zahlen Beispiel 7.15 an , an+1 , . . . , a2n−1 . Gesucht wird ihr Maximum. Algorithmus (für EREW-PRAM): for l ← m − 1 down to 0 do par [2l ≤ j ≤ 2l+1 − 1] aj ← max{a2j , a2j+1 } Erklärung: Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) m= 3 l= 2 j= 4 2j= 8 Seite 29 a1 10 l=0 l=1 l=2 a8 3 a2 10 a3 9 a4 10 a5 2 a9 a6 a7 9 7 a10 a11 a12 a13 a14 a15 2 1 4 9 6 7 10 Abbildung 7.9: Maximum finden durch die PRAM 4.14 Wenn man eine Berechnung, die O(n) sequentielle Zeit braucht, Korollar 7.14 � � auf n Prozessoren in O(log n) Zeit ausführen kann, dann kann man diese Berechnung auf O logn n Prozessoren in Zeit � � O(log n) ausführen (d. h. in optimaler Zeit: O(n) = O(log n) · O logn n ). Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 30 a1 10 l=0 l=1 l=2 a8 3 a2 10 a3 9 a4 10 a5 2 a9 a6 a7 9 7 a10 a11 a12 a13 a14 a15 2 1 4 9 6 7 10 Abbildung 7.9: Maximum finden durch die PRAM n=8 4.14 Wenn man eine Berechnung, die O(n) sequentielle Zeit braucht, Korollar 7.14 � � auf n Prozessoren in O(log n) Zeit ausführen kann, dann kann man diese Berechnung auf O logn n Prozessoren in Zeit � � O(log n) ausführen (d. h. in optimaler Zeit: O(n) = O(log n) · O logn n ). 8 � �=2 3 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 30 Folgender Algorithmus (für CRCWarb , CRCWcom , oder CRCWpri – PRAM) kann mit n2 Prozessoren das Maximum (Minimum) von n Zahlen in der Zeit O(1) finden. Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 31 Folgender Algorithmus (für CRCWarb , CRCWcom , oder CRCWpri – PRAM) kann mit n2 Prozessoren das Maximum (Minimum) von n Zahlen in der Zeit O(1) finden. Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 31 Folgender Algorithmus (für CRCWarb , CRCWcom , oder CRCWpri – PRAM) kann mit n2 Prozessoren das Maximum (Minimum) von n Zahlen in der Zeit O(1) finden. Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 31 Prozessoren: Pij , 1 ≤ i, j ≤ n; Input: M (0) ← n, M (1) ← x1 , . . . , M (n) ← xn . Die Register des globalen Speichers erhalten die Zahlen xi , unter denen das Maximum gefunden werden soll; Arbeitsspeicher: Y (1), . . . , Y (n) – Register des globalen Speichers; Output: Maximum liegt in M (0). Algorithmus für den Prozessor Pij : 1. Y (i) ← 0; 2. if M (i) < M (j) then Y (i) ← 1; 3. if Y (i) = 0 then M (0) ← M (i) Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 32 Prozessoren: Pij , 1 ≤ i, j ≤ n; Input: M (0) ← n, M (1) ← x1 , . . . , M (n) ← xn . Die Register des globalen Speichers erhalten die Zahlen xi , unter denen das Maximum gefunden werden soll; Arbeitsspeicher: Y (1), . . . , Y (n) – Register des globalen Speichers; Output: Maximum liegt in M (0). Algorithmus für den Prozessor Pij : 1. Y (i) ← 0; 2. if M (i) < M (j) then Y (i) ← 1; 3. if Y (i) = 0 then M (0) ← M (i) Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 32 Prozessoren: Pij , 1 ≤ i, j ≤ n; Input: M (0) ← n, M (1) ← x1 , . . . , M (n) ← xn . Die Register des globalen Speichers erhalten die Zahlen xi , unter denen das Maximum gefunden werden soll; Arbeitsspeicher: Y (1), . . . , Y (n) – Register des globalen Speichers; Output: Maximum liegt in M (0). Algorithmus für den Prozessor Pij : 1. Y (i) ← 0; 2. if M (i) < M (j) then Y (i) ← 1; 3. if Y (i) = 0 then M (0) ← M (i) Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 32 Prozessoren: Pij , 1 ≤ i, j ≤ n; Input: M (0) ← n, M (1) ← x1 , . . . , M (n) ← xn . Die Register des globalen Speichers erhalten die Zahlen xi , unter denen das Maximum gefunden werden soll; Arbeitsspeicher: Y (1), . . . , Y (n) – Register des globalen Speichers; Output: Maximum liegt in M (0). Algorithmus für den Prozessor Pij : 1. Y (i) ← 0; 2. if M (i) < M (j) then Y (i) ← 1; M(0)= M(1)= M(2)= M(3)= M(4)= 3. if Y (i) = 0 then M (0) ← M (i) Formale Grundlagen der Informatik II Thursday, December 2, 2010 Y(1)= M(1)= Y(2)= M(2)= Y(3)= M(3)= Y(4)= M(4)= Kap 4: Para!ele Algorithmen (Teil 1) Seite 32 Prozessoren: Pij , 1 ≤ i, j ≤ n; Input: M (0) ← n, M (1) ← x1 , . . . , M (n) ← xn . Die Register des globalen Speichers erhalten die Zahlen xi , unter denen das Maximum gefunden werden soll; Arbeitsspeicher: Y (1), . . . , Y (n) – Register des globalen Speichers; Output: Maximum liegt in M (0). Algorithmus für den Prozessor Pij : 1. Y (i) ← 0; 2. if M (i) < M (j) then Y (i) ← 1; M(0)= 4 M(1)= 2 M(2)=7 M(3)=3 M(4)=4 3. if Y (i) = 0 then M (0) ← M (i) Formale Grundlagen der Informatik II Thursday, December 2, 2010 Y(1)= M(1)= 2 Y(2)= M(2)= 7 Y(3)= M(3)= 3 Y(4)= M(4)= 4 Kap 4: Para!ele Algorithmen (Teil 1) Seite 32 Prozessoren: Pij , 1 ≤ i, j ≤ n; Input: M (0) ← n, M (1) ← x1 , . . . , M (n) ← xn . Die Register des globalen Speichers erhalten die Zahlen xi , unter denen das Maximum gefunden werden soll; Arbeitsspeicher: Y (1), . . . , Y (n) – Register des globalen Speichers; Output: Maximum liegt in M (0). Algorithmus für den Prozessor Pij : 1. Y (i) ← 0; 2. if M (i) < M (j) then Y (i) ← 1; M(0)= 4 M(1)= 2 M(2)=7 M(3)=3 M(4)=4 3. if Y (i) = 0 then M (0) ← M (i) Formale Grundlagen der Informatik II Thursday, December 2, 2010 Y(1)= M(1)= 2 Y(2)= M(2)= 7 Y(3)= M(3)= 3 Y(4)= M(4)= 4 Kap 4: Para!ele Algorithmen (Teil 1) Seite 32 Prozessoren: Pij , 1 ≤ i, j ≤ n; Input: M (0) ← n, M (1) ← x1 , . . . , M (n) ← xn . Die Register des globalen Speichers erhalten die Zahlen xi , unter denen das Maximum gefunden werden soll; Arbeitsspeicher: Y (1), . . . , Y (n) – Register des globalen Speichers; Output: Maximum liegt in M (0). Algorithmus für den Prozessor Pij : 1. Y (i) ← 0; 2. if M (i) < M (j) then Y (i) ← 1; M(0)= 4 M(1)= 2 M(2)=7 M(3)=3 M(4)=4 3. if Y (i) = 0 then M (0) ← M (i) Formale Grundlagen der Informatik II Thursday, December 2, 2010 Y(1)= M(1)= 2 Y(2)= M(2)= 7 Y(3)= M(3)= 3 Y(4)= M(4)= 4 Kap 4: Para!ele Algorithmen (Teil 1) Seite 32 Prozessoren: Pij , 1 ≤ i, j ≤ n; Input: M (0) ← n, M (1) ← x1 , . . . , M (n) ← xn . Die Register des globalen Speichers erhalten die Zahlen xi , unter denen das Maximum gefunden werden soll; Arbeitsspeicher: Y (1), . . . , Y (n) – Register des globalen Speichers; Output: Maximum liegt in M (0). Algorithmus für den Prozessor Pij : 1. Y (i) ← 0; 2. if M (i) < M (j) then Y (i) ← 1; M(0)= 4 M(1)= 2 M(2)=7 M(3)=3 M(4)=4 3. if Y (i) = 0 then M (0) ← M (i) Formale Grundlagen der Informatik II Thursday, December 2, 2010 Y(1)= M(1)= 2 Y(2)= M(2)= 7 Y(3)= M(3)= 3 Y(4)= M(4)= 4 Kap 4: Para!ele Algorithmen (Teil 1) Seite 32 Prozessoren: Pij , 1 ≤ i, j ≤ n; Input: M (0) ← n, M (1) ← x1 , . . . , M (n) ← xn . Die Register des globalen Speichers erhalten die Zahlen xi , unter denen das Maximum gefunden werden soll; Arbeitsspeicher: Y (1), . . . , Y (n) – Register des globalen Speichers; Output: Maximum liegt in M (0). Algorithmus für den Prozessor Pij : 1. Y (i) ← 0; 2. if M (i) < M (j) then Y (i) ← 1; 3. if Y (i) = 0 then M (0) ← M (i) M(0)= 4 M(1)= 2 M(2)=7 M(3)=3 M(4)=4 Y(1)=0 M(1)= 2 Y(2)=0 M(2)= 7 Y(3)=0 M(3)= 3 Y(4)=0 M(4)= 4 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 32 Prozessoren: Pij , 1 ≤ i, j ≤ n; Input: M (0) ← n, M (1) ← x1 , . . . , M (n) ← xn . Die Register des globalen Speichers erhalten die Zahlen xi , unter denen das Maximum gefunden werden soll; Arbeitsspeicher: Y (1), . . . , Y (n) – Register des globalen Speichers; Output: Maximum liegt in M (0). Algorithmus für den Prozessor Pij : 1. Y (i) ← 0; 2. if M (i) < M (j) then Y (i) ← 1; 3. if Y (i) = 0 then M (0) ← M (i) M(0)= 4 M(1)= 2 M(2)=7 M(3)=3 M(4)=4 Y(1)=0 M(1)= 2 Y(2)=0 M(2)= 7 Y(3)=0 M(3)= 3 Y(4)=0 M(4)= 4 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 32 Prozessoren: Pij , 1 ≤ i, j ≤ n; Input: M (0) ← n, M (1) ← x1 , . . . , M (n) ← xn . Die Register des globalen Speichers erhalten die Zahlen xi , unter denen das Maximum gefunden werden soll; Arbeitsspeicher: Y (1), . . . , Y (n) – Register des globalen Speichers; Output: Maximum liegt in M (0). Algorithmus für den Prozessor Pij : 1. Y (i) ← 0; 2. if M (i) < M (j) then Y (i) ← 1; 3. if Y (i) = 0 then M (0) ← M (i) Formale Grundlagen der Informatik II Thursday, December 2, 2010 M(0)= 4 M(1)= 2 M(2)=7 M(3)=3 M(4)=4 Y(1)=0 M(1)= 2 F T T T Y(2)=0 M(2)= 7 F F F F Y(3)=0 M(3)= 3 F T F T Y(4)=0 M(4)= 4 F T F F Kap 4: Para!ele Algorithmen (Teil 1) Seite 32 Prozessoren: Pij , 1 ≤ i, j ≤ n; Input: M (0) ← n, M (1) ← x1 , . . . , M (n) ← xn . Die Register des globalen Speichers erhalten die Zahlen xi , unter denen das Maximum gefunden werden soll; Arbeitsspeicher: Y (1), . . . , Y (n) – Register des globalen Speichers; Output: Maximum liegt in M (0). Algorithmus für den Prozessor Pij : 1. Y (i) ← 0; 2. if M (i) < M (j) then Y (i) ← 1; 3. if Y (i) = 0 then M (0) ← M (i) Formale Grundlagen der Informatik II Thursday, December 2, 2010 M(0)= 4 M(1)= 2 M(2)=7 M(3)=3 M(4)=4 Y(1)=01 M(1)= 2 F T T T Y(2)=0 M(2)= 7 F F F F Y(3)=01 M(3)= 3 F T F T Y(4)=01 M(4)= 4 F T F F Kap 4: Para!ele Algorithmen (Teil 1) Seite 32 Prozessoren: Pij , 1 ≤ i, j ≤ n; Input: M (0) ← n, M (1) ← x1 , . . . , M (n) ← xn . Die Register des globalen Speichers erhalten die Zahlen xi , unter denen das Maximum gefunden werden soll; Arbeitsspeicher: Y (1), . . . , Y (n) – Register des globalen Speichers; Output: Maximum liegt in M (0). Algorithmus für den Prozessor Pij : 1. Y (i) ← 0; 2. if M (i) < M (j) then Y (i) ← 1; 3. if Y (i) = 0 then M (0) ← M (i) Formale Grundlagen der Informatik II Thursday, December 2, 2010 M(0)= 4 M(1)= 2 M(2)=7 M(3)=3 M(4)=4 Y(1)=01 M(1)= 2 F T T T Y(2)=0 M(2)= 7 F F F F Y(3)=01 M(3)= 3 F T F T Y(4)=01 M(4)= 4 F T F F Kap 4: Para!ele Algorithmen (Teil 1) Seite 32 Prozessoren: Pij , 1 ≤ i, j ≤ n; Input: M (0) ← n, M (1) ← x1 , . . . , M (n) ← xn . Die Register des globalen Speichers erhalten die Zahlen xi , unter denen das Maximum gefunden werden soll; Arbeitsspeicher: Y (1), . . . , Y (n) – Register des globalen Speichers; Output: Maximum liegt in M (0). Algorithmus für den Prozessor Pij : 1. Y (i) ← 0; 2. if M (i) < M (j) then Y (i) ← 1; 3. if Y (i) = 0 then M (0) ← M (i) Formale Grundlagen der Informatik II Thursday, December 2, 2010 7 M(0)= 4 M(1)= 2 M(2)=7 M(3)=3 M(4)=4 Y(1)=01 M(1)= 2 F T T T Y(2)=0 M(2)= 7 F F F F Y(3)=01 M(3)= 3 F T F T Y(4)=01 M(4)= 4 F T F F Kap 4: Para!ele Algorithmen (Teil 1) Seite 32 Prozessoren: Pij , 1 ≤ i, j ≤ n; Input: M (0) ← n, M (1) ← x1 , . . . , M (n) ← xn . Die Register des globalen Speichers erhalten die Zahlen xi , unter denen das Maximum gefunden werden soll; Arbeitsspeicher: Y (1), . . . , Y (n) – Register des globalen Speichers; Output: Maximum liegt in M (0). Algorithmus für den Prozessor Pij : 1. Y (i) ← 0; 2. if M (i) < M (j) then Y (i) ← 1; 3. if Y (i) = 0 then M (0) ← M (i) timeM (n) = Formale Grundlagen der Informatik II Thursday, December 2, 2010 7 M(0)= 4 M(1)= 2 M(2)=7 M(3)=3 M(4)=4 Y(1)=01 M(1)= 2 F T T T Y(2)=0 M(2)= 7 F F F F Y(3)=01 M(3)= 3 F T F T Y(4)=01 M(4)= 4 F T F F Kap 4: Para!ele Algorithmen (Teil 1) Seite 32 Prozessoren: Pij , 1 ≤ i, j ≤ n; Input: M (0) ← n, M (1) ← x1 , . . . , M (n) ← xn . Die Register des globalen Speichers erhalten die Zahlen xi , unter denen das Maximum gefunden werden soll; Arbeitsspeicher: Y (1), . . . , Y (n) – Register des globalen Speichers; Output: Maximum liegt in M (0). Algorithmus für den Prozessor Pij : 1. Y (i) ← 0; 2. if M (i) < M (j) then Y (i) ← 1; 3. if Y (i) = 0 then M (0) ← M (i) timeM (n) = O(1) Formale Grundlagen der Informatik II Thursday, December 2, 2010 7 M(0)= 4 M(1)= 2 M(2)=7 M(3)=3 M(4)=4 Y(1)=01 M(1)= 2 F T T T Y(2)=0 M(2)= 7 F F F F Y(3)=01 M(3)= 3 F T F T Y(4)=01 M(4)= 4 F T F F Kap 4: Para!ele Algorithmen (Teil 1) Seite 32 Prozessoren: Pij , 1 ≤ i, j ≤ n; Input: M (0) ← n, M (1) ← x1 , . . . , M (n) ← xn . Die Register des globalen Speichers erhalten die Zahlen xi , unter denen das Maximum gefunden werden soll; Arbeitsspeicher: Y (1), . . . , Y (n) – Register des globalen Speichers; Output: Maximum liegt in M (0). Algorithmus für den Prozessor Pij : 1. Y (i) ← 0; 2. if M (i) < M (j) then Y (i) ← 1; 3. if Y (i) = 0 then M (0) ← M (i) timeM (n) = O(1) procM (n) = O(n ) 2 Formale Grundlagen der Informatik II Thursday, December 2, 2010 7 M(0)= 4 M(1)= 2 M(2)=7 M(3)=3 M(4)=4 Y(1)=01 M(1)= 2 F T T T Y(2)=0 M(2)= 7 F F F F Y(3)=01 M(3)= 3 F T F T Y(4)=01 M(4)= 4 F T F F Kap 4: Para!ele Algorithmen (Teil 1) Seite 32 Prozessoren: Pij , 1 ≤ i, j ≤ n; Input: M (0) ← n, M (1) ← x1 , . . . , M (n) ← xn . Die Register des globalen Speichers erhalten die Zahlen xi , unter denen das Maximum gefunden werden soll; Arbeitsspeicher: Y (1), . . . , Y (n) – Register des globalen Speichers; Output: Maximum liegt in M (0). Algorithmus für den Prozessor Pij : 1. Y (i) ← 0; 2. if M (i) < M (j) then Y (i) ← 1; 3. if Y (i) = 0 then M (0) ← M (i) 7 M(0)= 4 M(1)= 2 M(2)=7 M(3)=3 M(4)=4 Y(1)=01 M(1)= 2 F T T T procM (n) = O(n ) Y(2)=0 M(2)= 7 F F F F workM (n) = Y(3)=01 M(3)= 3 F T F T Y(4)=01 M(4)= 4 F T F F timeM (n) = O(1) 2 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 32 Prozessoren: Pij , 1 ≤ i, j ≤ n; Input: M (0) ← n, M (1) ← x1 , . . . , M (n) ← xn . Die Register des globalen Speichers erhalten die Zahlen xi , unter denen das Maximum gefunden werden soll; Arbeitsspeicher: Y (1), . . . , Y (n) – Register des globalen Speichers; Output: Maximum liegt in M (0). Algorithmus für den Prozessor Pij : 1. Y (i) ← 0; 2. if M (i) < M (j) then Y (i) ← 1; 3. if Y (i) = 0 then M (0) ← M (i) 7 M(0)= 4 M(1)= 2 M(2)=7 M(3)=3 M(4)=4 Y(1)=01 M(1)= 2 F T T T procM (n) = O(n ) Y(2)=0 M(2)= 7 F F F F 2 O(n ) workM (n) = Y(3)=01 M(3)= 3 F T F T Y(4)=01 M(4)= 4 F T F F timeM (n) = O(1) 2 Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 32 Prozessoren: Pij , 1 ≤ i, j ≤ n; Input: M (0) ← n, M (1) ← x1 , . . . , M (n) ← xn . Die Register des globalen Speichers erhalten die Zahlen xi , unter denen das Maximum gefunden werden soll; Arbeitsspeicher: Y (1), . . . , Y (n) – Register des globalen Speichers; Output: Maximum liegt in M (0). Algorithmus für den Prozessor Pij : 1. Y (i) ← 0; 2. if M (i) < M (j) then Y (i) ← 1; 3. if Y (i) = 0 then M (0) ← M (i) 7 M(0)= 4 M(1)= 2 M(2)=7 M(3)=3 M(4)=4 Y(1)=01 M(1)= 2 F T T T procM (n) = O(n ) Y(2)=0 M(2)= 7 F F F F 2 O(n ) workM (n) = Y(3)=01 M(3)= 3 F T F T CRCWcom PRAM Ein arb gleichzeitige Y(4)=01 M(4)= 4 F T F F timeM (n) = O(1) 2 CRCW PRAM ( Wenn einige Proz pri CRCW PRAM ( Formale Grundlagen der Informatik II Proz Wenn einige Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 32 4.2.5 7.2.5 PRAM–Hauptkomplexitätsklassen Satz 7.19 T, P : N → N Funktionen und : N → N einemit rekur4.19 Sei M eineSeien beliebige PRAM–Variante. Wirk bezeichnen sive Funktion, die auf RAM+ in der Zeit T berechenbar ist. Für eine feste Konstante c gilt: MT imeP roc(T, P ) P roc(T, P )⊆ imeP roc(c ·die k · T, � einer �) die MengeMT derimeP Funktionen bzw. von T -Zeit– und / MT Sprachen, k Prozessorbeschränkten PRAM vom Typ M berechnet werden könn Zwischen Prozessor- und Zeitkomplexität bei PRAMs besteht die gende Beziehung: Satz 7.20 Seien T, P : IN → IN berechenbare Funktionen und k : IN IN eine rekursive Funktion, die auf RAM+ in der Zeit T berechenbar Für eine feste Konstante c gilt: P MT imeP roc(T, P )⊆ / MT imeP roc(c · k · T, � �) k Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 33 Seite 4.2.5 7.2.5 PRAM–Hauptkomplexitätsklassen Satz 7.19 T, P : N → N Funktionen und : N → N einemit rekur4.19 Sei M eineSeien beliebige PRAM–Variante. Wirk bezeichnen sive Funktion, die auf RAM+ in der Zeit T berechenbar ist. Für eine feste Konstante c gilt: MT imeP roc(T, P ) P roc(T, P )⊆ imeP roc(c ·die k · T, � einer �) die MengeMT derimeP Funktionen bzw. von T -Zeit– und / MT Sprachen, k Prozessorbeschränkten PRAM vom Typ M berechnet werden könn Zwischen Prozessor- und Zeitkomplexität bei PRAMs besteht die gende Beziehung: eine PRAM-Maschinenklasse Satz 7.20 Seien T, P : IN → IN berechenbare Funktionen und k : IN IN eine rekursive Funktion, die auf RAM+ in der Zeit T berechenbar Für eine feste Konstante c gilt: P MT imeP roc(T, P )⊆ / MT imeP roc(c · k · T, � �) k Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 33 Seite 4.2.5 7.2.5 PRAM–Hauptkomplexitätsklassen Satz 7.19 T, P : N → N Funktionen und : N → N einemit rekur4.19 Sei M eineSeien beliebige PRAM–Variante. Wirk bezeichnen sive Funktion, die auf RAM+ in der Zeit T berechenbar ist. Für eine feste Konstante c gilt: MT imeP roc(T, P ) P roc(T, P )⊆ imeP roc(c ·die k · T, � einer �) die MengeMT derimeP Funktionen bzw. von T -Zeit– und / MT Sprachen, k Prozessorbeschränkten PRAM vom Typ M berechnet werden könn Zwischen Prozessor- und Zeitkomplexität bei PRAMs besteht die gende Beziehung: Zeitkomplexität eine PRAM-Maschinenklasse Satz 7.20 Seien T, P : IN → IN berechenbare Funktionen und k : IN IN eine rekursive Funktion, die auf RAM+ in der Zeit T berechenbar Für eine feste Konstante c gilt: P MT imeP roc(T, P )⊆ / MT imeP roc(c · k · T, � �) k Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 33 Seite 4.2.5 7.2.5 PRAM–Hauptkomplexitätsklassen Satz 7.19 T, P : N → N Funktionen und : N → N einemit rekur4.19 Sei M eineSeien beliebige PRAM–Variante. Wirk bezeichnen sive Funktion, die auf RAM+ in der Zeit T berechenbar ist. Für eine feste Konstante c gilt: MT imeP roc(T, P ) P roc(T, P )⊆ imeP roc(c ·die k · T, � einer �) die MengeMT derimeP Funktionen bzw. von T -Zeit– und / MT Sprachen, k Prozessorbeschränkten PRAM vom Typ M berechnet werden könn Zwischen Prozessor- undProzessorkomplexität Zeitkomplexität bei PRAMs besteht die gende Beziehung: Zeitkomplexität eine PRAM-Maschinenklasse Satz 7.20 Seien T, P : IN → IN berechenbare Funktionen und k : IN IN eine rekursive Funktion, die auf RAM+ in der Zeit T berechenbar Für eine feste Konstante c gilt: P MT imeP roc(T, P )⊆ / MT imeP roc(c · k · T, � �) k Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 33 Seite 4.2.5 7.2.5 PRAM–Hauptkomplexitätsklassen Satz 7.19 T, P : N → N Funktionen und : N → N einemit rekur4.19 Sei M eineSeien beliebige PRAM–Variante. Wirk bezeichnen sive Funktion, die auf RAM+ in der Zeit T berechenbar ist. Für eine feste Konstante c gilt: MT imeP roc(T, P ) P roc(T, P )⊆ imeP roc(c ·die k · T, � einer �) die MengeMT derimeP Funktionen bzw. von T -Zeit– und / MT Sprachen, k Prozessorbeschränkten PRAM vom Typ M berechnet werden könn Zwischen Prozessor- undProzessorkomplexität Zeitkomplexität bei PRAMs besteht die gende Beziehung: Zeitkomplexität eine PRAM-Maschinenklasse Satz 7.20 Seien T, P : IN → IN berechenbare Funktionen und k : IN IN eine rekursive Funktion, die auf RAM+ in der Zeit T berechenbar Für eine feste wie Konstante c gilt: Beweis Ablaufmethode von Brendt 7.12 (Brent’s scheduling principle) P MT imeP roc(T, imeP roc(c k · T, �ausf�) / MT = P )⊆ Prozessoren in· Zeit k Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 33 Seite 4.19 Seien T, P : N → N Funktionen und k : N → N eine rekurSatz 7.19 sive Funktion, die auf RAM+ in der Zeit T berechenbar ist. Für eine feste Konstante c gilt: P MT imeP roc(T, P )⊆ / MT imeP roc(c · k · T, � �) k Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 34 Seite 4.19 Seien T, P : N → N Funktionen und k : N → N eine rekurSatz 7.19 sive Funktion, die auf RAM+ in der Zeit T berechenbar ist. Für eine feste Konstante c gilt: P MT imeP roc(T, P )⊆ / MT imeP roc(c · k · T, � �) k Beweis: Für Polynome P, T und k = P ergibt sich aus dem vorigen Satz: CRCW+ T imeP roc(T, P ) ⊆ CRCW+ T imeP roc(O(P · T ), 1) = RAM+ − T ime(O(T · P )) ⊆ P Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 34 Seite 4.19 Seien T, P : N → N Funktionen und k : N → N eine rekurSatz 7.19 sive Funktion, die auf RAM+ in der Zeit T berechenbar ist. Für eine feste Konstante c gilt: P MT imeP roc(T, P )⊆ / MT imeP roc(c · k · T, � �) k Beweis: Für Polynome P, T und k = P ergibt sich aus dem vorigen Satz: CRCW+ T imeP roc(T, P ) ⊆ CRCW+ T imeP roc(O(P · T ), 1) = RAM+ − T ime(O(T · P )) ⊆ P die 1. Maschinenklasse Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) 34 Seite die 1. Maschinenklasse RAM+ –Time(P OL) = RAM–Timelog (P OL) = P = DTM–Time(P OL) = DTM1 –Time(P OL) 4.20 Korollar 7.20 CRCW+ T imeP roc(POL, POL) = P 35 Thursday, December 2, 2010 die 1. Maschinenklasse RAM+ –Time(P OL) = RAM–Timelog (P OL) = P = DTM–Time(P OL) = DTM1 –Time(P OL) die 2. Maschinenklasse Para!elrechner 4.20 Korollar 7.20 CRCW+ T imeP roc(POL, POL) = P 35 Thursday, December 2, 2010 die 1. Maschinenklasse RAM+ –Time(P OL) = RAM–Timelog (P OL) = P = DTM–Time(P OL) = DTM1 –Time(P OL) die 2. Maschinenklasse Para!elrechner 4.20 Korollar 7.20 CRCW+ T imeP roc(POL, POL) = P ? 35 Thursday, December 2, 2010 die 1. Maschinenklasse RAM+ –Time(P OL) = RAM–Timelog (P OL) = P = DTM–Time(P OL) = DTM1 –Time(P OL) die 2. Maschinenklasse Para!elrechner 4.20 Korollar 7.20 CRCW+ T imeP roc(POL, POL) = P ? Neue Komplexitätsklasse: P RAM − T ime(t(n)) := CRCW+ T imeP roc(t(n), 2t(n) ) 35 Thursday, December 2, 2010 die 1. Maschinenklasse RAM+ –Time(P OL) = RAM–Timelog (P OL) = P = DTM–Time(P OL) = DTM1 –Time(P OL) die 2. Maschinenklasse Para!elrechner 4.20 Korollar 7.20 CRCW+ T imeP roc(POL, POL) = P ? Neue Komplexitätsklasse: P RAM − T ime(t(n)) := CRCW+ T imeP roc(t(n), 2t(n) ) P RAM − T ime(P OL) = ? 35 Thursday, December 2, 2010 Satz 4.21 P RAM − T ime(P OL) = PSPACE 36 Thursday, December 2, 2010 Satz 4.21 P RAM − T ime(P OL) = PSPACE Benötigte Hilfslemmata (hier ohne Beweis): 36 Thursday, December 2, 2010 Satz 4.21 P RAM − T ime(P OL) = PSPACE Benötigte Hilfslemmata (hier ohne Beweis): Space(s(n)) ⊆ P RAM − T ime(O(s(n))) 36 Thursday, December 2, 2010 Satz 4.21 P RAM − T ime(P OL) = PSPACE Benötigte Hilfslemmata (hier ohne Beweis): Space(s(n)) ⊆ P RAM − T ime(O(s(n))) 2 P RAM − T ime(t(n)) ⊆ Space(t (n)) 36 Thursday, December 2, 2010 Satz 4.21 P RAM − T ime(P OL) = PSPACE Benötigte Hilfslemmata (hier ohne Beweis): Space(s(n)) ⊆ P RAM − T ime(O(s(n))) 2 P RAM − T ime(t(n)) ⊆ Space(t (n)) Damit folgt dann: 36 Thursday, December 2, 2010 Satz 4.21 P RAM − T ime(P OL) = PSPACE Benötigte Hilfslemmata (hier ohne Beweis): Space(s(n)) ⊆ P RAM − T ime(O(s(n))) 2 P RAM − T ime(t(n)) ⊆ Space(t (n)) Damit folgt dann: PSPACE = � k PSpace(nk ) ⊆ � k PRAM-Time(O(nk )) = PRAM − Time(P OL) 36 Thursday, December 2, 2010 Satz 4.21 P RAM − T ime(P OL) = PSPACE Benötigte Hilfslemmata (hier ohne Beweis): Space(s(n)) ⊆ P RAM − T ime(O(s(n))) 2 P RAM − T ime(t(n)) ⊆ Space(t (n)) Damit folgt dann: PSPACE = � k PSpace(nk ) ⊆ PRAM − Time(P OL) = � k � k PRAM-Time(O(nk )) = PRAM − Time(P OL) PRAM-Time(nk ) ⊆ � k PSpace(n2k ) = PSPACE 36 Thursday, December 2, 2010 Satz 4.21 P RAM − T ime(P OL) = PSPACE Benötigte Hilfslemmata (hier ohne Beweis): Space(s(n)) ⊆ P RAM − T ime(O(s(n))) 2 P RAM − T ime(t(n)) ⊆ Space(t (n)) Damit folgt dann: PSPACE = � k PSpace(nk ) ⊆ PRAM − Time(P OL) = � k � k PRAM-Time(O(nk )) = PRAM − Time(P OL) PRAM-Time(nk ) ⊆ die 2. Maschinenklasse � k PSpace(n2k ) = PSPACE Para!elrechner 36 Thursday, December 2, 2010 Satz 4.21 P RAM − T ime(P OL) = PSPACE Benötigte Hilfslemmata (hier ohne Beweis): Space(s(n)) ⊆ P RAM − T ime(O(s(n))) 2 P RAM − T ime(t(n)) ⊆ Space(t (n)) Damit folgt dann: PSPACE = � k PSpace(nk ) ⊆ PRAM − Time(P OL) = � k � k PRAM-Time(O(nk )) = PRAM − Time(P OL) PRAM-Time(nk ) ⊆ die 2. Maschinenklasse � k PSpace(n2k ) = PSPACE Para!elrechner Parallel Computation Thesis There exists a standard class of (parallel) machine models, which includes among others all variants of PRAM machines, and also APM, for which polynomial time is as powerful as polynomial space for sequencial machines (from the first machine class). 36 Thursday, December 2, 2010 Satz 4.21 P RAM − T ime(P OL) = PSPACE Benötigte Hilfslemmata (hier ohne Beweis): Space(s(n)) ⊆ P RAM − T ime(O(s(n))) 2 P RAM − T ime(t(n)) ⊆ Space(t (n)) Damit folgt dann: PSPACE = � k PSpace(nk ) ⊆ PRAM − Time(P OL) = � k � k PRAM-Time(O(nk )) = PRAM − Time(P OL) PRAM-Time(nk ) ⊆ die 2. Maschinenklasse � k PSpace(n2k ) = PSPACE Para!elrechner Parallel Computation Thesis There exists a standard class of (parallel) machine models, which includes among others all variants of PRAM machines, and also APM, for which polynomial time is as powerful as polynomial space for sequencial machines (from the first machine class). 36 Thursday, December 2, 2010 Satz 4.21 P RAM − T ime(P OL) = PSPACE Benötigte Hilfslemmata (hier ohne Beweis): Space(s(n)) ⊆ P RAM − T ime(O(s(n))) 2 P RAM − T ime(t(n)) ⊆ Space(t (n)) Damit folgt dann: PSPACE = � k PSpace(nk ) ⊆ PRAM − Time(P OL) = � k � k PRAM-Time(O(nk )) = PRAM − Time(P OL) PRAM-Time(nk ) ⊆ die 2. Maschinenklasse � k PSpace(n2k ) = PSPACE Para!elrechner Parallel Computation Thesis There exists a standard class of (parallel) machine models, which includes among others all variants of PRAM machines, and also APM, for which polynomial time is as powerful as polynomial space for sequencial machines (from the first machine class). 36 Thursday, December 2, 2010 4.2.6 Grenzen der Parallelität Natürliche Frage: Gibt es ein natürliches und einfaches Problem, für das es keinen parallelen Algorithmus gibt, der schneller ist als der schnellste sequentielle Algorithmus? Satz 4.22 (Kung) Kein paralleler Algorithmus, der die Operationen +, −, ∗, ÷ benutzt, kann ein Polynom n-ten Grades schneller als in log n Schritten berechnen. Korollar 4.23 Kein paralleler Algorithmus kann xn schneller als ein sequentieller Algorithmus berechnen. Formale Grundlagen der Informatik II Thursday, December 2, 2010 Kap 4: Para!ele Algorithmen (Teil 1) Seite 37