Entwurf von Ergebnisprüfern für parallel laufende Programme
description
Transcript of Entwurf von Ergebnisprüfern für parallel laufende Programme
![Page 1: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/1.jpg)
1
Entwurf von Ergebnisprüfern für parallel laufende Programme
René Nissing
![Page 2: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/2.jpg)
parallele Ergebnisprüfer René Nissing 2
Gliederung
Einführung Grundlagen der Parallelrechnerarchitektur das parallele Ergebnisprüfer-Modell parallele Ergebnisprüfer Zusammenfassung
![Page 3: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/3.jpg)
parallele Ergebnisprüfer René Nissing 3
Gliederung
Einführung Grundlagen der Parallelrechnerarchitektur das parallele Ergebnisprüfer-Modell parallele Ergebnisprüfer Zusammenfassung
![Page 4: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/4.jpg)
parallele Ergebnisprüfer René Nissing 4
Einführung
Methoden zur Prüfung der Fehlerfreiheit eines Programms: formaler Beweis
mathematischer Beweis aufstellen Nachteil
schwer auffindbar Ergebnisprüfer
Korrektheit des Ergebnis Realtime Beurteilung Nachteil:
Aufblähung des Programmcodes Verlängerung Laufzeit
Komplexität von parallelen Programmen parallele Mittel ausschöpfen Uneffektivität eines sequentiellen Ergebnisprüfers für parallele
Programme
![Page 5: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/5.jpg)
parallele Ergebnisprüfer René Nissing 5
Gliederung
Einführung Grundlagen der Parallelrechnerarchitektur das parallele Ergebnisprüfer-Modell parallele Ergebnisprüfer Zusammenfassung
![Page 6: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/6.jpg)
parallele Ergebnisprüfer René Nissing 6
Grundlagen der Parallelrechnerarchitektur
Zielsetzungen und Einsatzbereiche der Parallelverarbeitung Rechnermodelle
RAM PRAM CRCW PRAM
![Page 7: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/7.jpg)
parallele Ergebnisprüfer René Nissing 7
Zielsetzungen der Parallelverarbeitung Rechenzeiten verringern höhere Zuverlässigkeit
Einsatzbereiche der Parallelverarbeitung Simulation komplexer Phänomene, wie z.B. im Bereich der
Bildverarbeitung, Halbleiterentwicklung oder Strömungssimulation.
Grundlagen der Parallelrechnerarchitektur
![Page 8: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/8.jpg)
parallele Ergebnisprüfer René Nissing 8
Grundlagen der Parallelrechnerarchitektur
Einsatzbereich: Beispiel Verarbeitung und Visualisierung von meteorologischen Daten
(z.B. Wettervorhersage)
Berücksichtigung von Temperatur, Luftdruck, Windgeschwindigkeit … große Menge an Daten verarbeiten, um gute Prognosen zu machen
![Page 9: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/9.jpg)
parallele Ergebnisprüfer René Nissing 9
Rechnermodelle RAM
Grundlagen der Parallelrechnerarchitektur
![Page 10: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/10.jpg)
parallele Ergebnisprüfer René Nissing 10
Rechnermodelle PRAM
besteht aus mehreren RAM´s
n identische Prozessoren
Zugriff auf gemeinsamen Speicher
gemeinsamer Takt => gleichzeitige Ausführung von Operationen
Grundlagen der Parallelrechnerarchitektur
![Page 11: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/11.jpg)
parallele Ergebnisprüfer René Nissing 11
Rechnermodelle PRAM
mögliche Konflikte Aufteilung des Befehlszyklus:
Speicher lesen, Operation ausführen und Speicher schreiben
Zugriffskonflikte Operation ausführen: unkritisch Konflikte beim gemeinsamen Lesen oder Schreiben verschiedene Optionen für PRAM´s
Grundlagen der Parallelrechnerarchitektur
![Page 12: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/12.jpg)
parallele Ergebnisprüfer René Nissing 12
Grundlagen der Parallelrechnerarchitektur
Rechnermodelle CRCW PRAM
vier Optionen für PRAM´s: Exclusive read (ER) Exclusive write (EW) Concurrent read (CR) Concurrent write (CW)
durch Kombination vier PRAM-Varianten: EREW-PRAM CREW-PRAM ERCW-PRAM CRCW-PRAM
![Page 13: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/13.jpg)
parallele Ergebnisprüfer René Nissing 13
Rechnermodelle CRCW PRAM
bei Schreibkonflikten vier Lösungsansätze: Common (C-CRCW) Arbitrary (A-CRCW) Minimum (M-CRCW) Priority (P-CRCW)
Alle Beispiele aus Techniken sind (A-) oder (P-) CRCW PRAM
Grundlagen der Parallelrechnerarchitektur
![Page 14: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/14.jpg)
parallele Ergebnisprüfer René Nissing 14
Gliederung
Einführung Grundlagen der Parallelrechnerarchitektur das parallele Ergebnisprüfer-Modell parallele Ergebnisprüfer Zusammenfassung
![Page 15: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/15.jpg)
parallele Ergebnisprüfer René Nissing 15
Das parallele Ergebnisprüfer-Modell
Definition: probabilistischer Ergebnisprüfer Voraussetzungen:
P ein Programm (auch Orakel genannt), das eine Funktion f berechnen soll
x der betrachtete Eingabewert α der Konfidenzparameter
![Page 16: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/16.jpg)
parallele Ergebnisprüfer René Nissing 16
Definition: Ein probabilistischer Ergebnisprüfer für die Funktion f ist ein
probabilistisches Orakel-Programm RPf mit Orakel P, das
verifiziert, ob P das richtige Ergebnis bei einem gegebenen Eingabewert x ausgibt, wenn:
P(x) <> f(x), dann gibt RPf mit einer Wahrscheinlichkeit ≥
1- α "FAIL" aus P korrekt ist für jeden Eingabewert, dann gibt RP
f mit einer Wahrscheinlichkeit ≥ 1- α "PASS" aus
dabei darf der Ergebnisprüfer nur eine polynomielle Anzahl an Prozessoren benutzen
Das parallele Ergebnisprüfer-Modell
![Page 17: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/17.jpg)
parallele Ergebnisprüfer René Nissing 17
Das parallele Ergebnisprüfer-Modell
P so oft wie gewünscht aufrufen P ist Black-Box Mehrfachausführung des Programms P kein Argument Ergebnisprüfer <> Programm
![Page 18: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/18.jpg)
parallele Ergebnisprüfer René Nissing 18
Ergebnisprüfer muss sich vom zu prüfenden Programm unterscheiden
Definition: quantifiably different Annahmen:
d(n) ist die Laufzeit des parallelen Programms, das f berechnet bei einer Größe n des Eingabewerts
p(n) ist die Anzahl an genutzten Prozessoren bei einer Laufzeit d(n)
Der Ergebnisprüfer RPf ist quantifiably different , wenn:
die Prüfungslaufzeit o(d(n)) ist oder gleichzeitig die Prüfungslaufzeit O(d(n)) ist und die Anzahl der
Prozessoren zum Überprüfen o(p(n)) ist. alle behandelten Ergebnisprüfer sind quantifiably different
Das parallele Ergebnisprüfer-Modell
![Page 19: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/19.jpg)
parallele Ergebnisprüfer René Nissing 19
Gliederung
Einführung Grundlagen der Parallelrechnerarchitektur das parallele Ergebnisprüfer-Modell parallele Ergebnisprüfer Zusammenfassung
![Page 20: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/20.jpg)
parallele Ergebnisprüfer René Nissing 20
parallele Ergebnisprüfer
Techniken 1. Berechnung durch zufällige Eingabewerte (random inputs) 2. Konsistenzbeweis
![Page 21: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/21.jpg)
parallele Ergebnisprüfer René Nissing 21
parallele Ergebnisprüfer
1. Technik: Berechnung durch zufällige Eingabewerte Programm P berechnet Funktion f bei Eingabewert x „kompatible“ Eingabewerte symmetrische Funktionen
![Page 22: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/22.jpg)
parallele Ergebnisprüfer René Nissing 22
parallele Ergebnisprüfer
Berechnung durch zufällige Eingabewerte Definition (symmetrische Funktionen):
Symmetrische Funktionen sind n-Bit Funktionen, deren Ausgabewert nur von der Anzahl 1´en aus der Eingabe abhängt
Wertetabelle t0,...,tn ti: Ausgabewert der symmetrischen Funktion, wenn genau i der
Eingabebits 1´en sind Beispiel: Majoritäts-Funktion
![Page 23: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/23.jpg)
parallele Ergebnisprüfer René Nissing 23
parallele Ergebnisprüfer
Permutationen des Eingabewerts Beispiel Berechnung durch zufällige Eingabewerte
symmetrische Funktion f Eingabewerte: Eine Liste von n Bits â = a1,a2,...,an und eine
Wertetabelle t0,...,tn
Ausgabewert: b = tl wobei
![Page 24: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/24.jpg)
parallele Ergebnisprüfer René Nissing 24
parallele Ergebnisprüfer
Berechnung durch zufällige Eingabewerte Partitionieren in n+1 Äquivalenzklassen Zuteilung Äquivalenzklasse Phase 1: Prüft, ob Ergebnis mit mehr als ½ der Elemente aus
Äquivalenzklasse konsistent Phase 2: Prüft, ob P bei mehr als ½ der Elemente aus jeder
Äquivalenzklasse das richtige Ergebnis liefert
![Page 25: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/25.jpg)
parallele Ergebnisprüfer René Nissing 25
Algorithmus
![Page 26: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/26.jpg)
26
Eingabe EProgramm
PAusgabe A
E1
E2
Ek
ProgrammP
ProgrammP
ProgrammP
A1
A2
Ak
Comparer
A <> A1, A2, …, Ak ?
Gib „PASS“ aus
Gib „FAIL“ ausja
nein
Phase 1
…… …
ParalleleBerechnung von
kPermutationen
![Page 27: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/27.jpg)
27
j=1100…00
Phase 2
……
…Parallele
Berechnung vonk
Permutationen
j=n-1111…10
j=2110…00
j=n111…11
Prozessor 1 von kπ1(100…00)
Prozessor 1 von kπ2(100…00)
Prozessor 1 von kπk(100…00)
P
P
P
A1 = t1
A2 = t2
Ak = tk
Gib „FAIL“ ausGib „PASS“ aus
ja nein
…
…
![Page 28: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/28.jpg)
parallele Ergebnisprüfer René Nissing 28
parallele Ergebnisprüfer
Berechnung durch zufällige Eingabewerte Beweis der Korrektheit des Ergebnisprüfers
P korrekt: „PASS“ zu prüfen: wenn P fehlerhaft: „FAIL“ Annahme: P liefert bei der Berechnung des Eingabewertes â
einen falschen Wert zu zeigen: Der Ergebnisprüfer gibt mit einer Wahrscheinlichkeit
≥ 1-α "FAIL" aus
![Page 29: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/29.jpg)
parallele Ergebnisprüfer René Nissing 29
parallele Ergebnisprüfer
Berechnung durch zufällige Eingabewerte Beweis der Korrektheit des Ergebnisprüfers
Sei r die Anzahl der 1´en des Eingabewertes â 1. Annahme: P liefert bei mehr als ½ der Eingabewerte mit r 1
´en die richtige Antwort Wahrscheinlichkeit ≥ 1-α: eine Inkonsistenz in Phase 1 2. Annahme: P gibt bei mehr als ½ der Eingabewerte mit r 1
´en die falsche Antwort aus Wahrscheinlichkeit ≥ 1- α: die r-te Gruppe Prozessoren findet in
Phase 2 heraus, dass das Programm P fehlerhaft ist
![Page 30: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/30.jpg)
parallele Ergebnisprüfer René Nissing 30
parallele Ergebnisprüfer
Berechnung durch zufällige Eingabewerte Laufzeitanalyse Ergebnisprüfer
Prüflaufzeit ist O(log*n) Anzahl der Prozessoren ist O(n2).
![Page 31: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/31.jpg)
parallele Ergebnisprüfer René Nissing 31
parallele Ergebnisprüfer
2. Technik: Konsistenz gewährleisten dynamische Programmierung Aufteilen der Eingabemenge Ausgabewert zusammenbauen Wertetabelle füllen Konsistenz der Einträge
![Page 32: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/32.jpg)
parallele Ergebnisprüfer René Nissing 32
parallele Ergebnisprüfer
Konsistenz gewährleisten Longest Common Subsequence-Problem Eingabewert: Zwei Zeichenfolgen x = x1x2x3...xn und y = y1y2y3...yn Ausgabewert: Die Länge der längsten gemeinsamen
Zeichensequenz lcs(l,k) die längste gemeinsame Zeichensequenz von xlxl+1...xn und
ykyk+1...yn
Wertetabelle aufbauen
![Page 33: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/33.jpg)
parallele Ergebnisprüfer René Nissing 33
Algorithmus
![Page 34: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/34.jpg)
parallele Ergebnisprüfer René Nissing 34
parallele Ergebnisprüfer
Konsistenz gewährleisten Laufzeitanalyse:
die Prüflaufzeit ist O(1) die Anzahl der Prozessoren ist O(n3)
![Page 35: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/35.jpg)
parallele Ergebnisprüfer René Nissing 35
Gliederung
Einführung Grundlagen der Parallelrechnerarchitektur das parallele Ergebnisprüfer-Modell parallele Ergebnisprüfer Zusammenfassung
![Page 36: Entwurf von Ergebnisprüfern für parallel laufende Programme](https://reader036.fdocument.pub/reader036/viewer/2022062301/56814556550346895db22745/html5/thumbnails/36.jpg)
parallele Ergebnisprüfer René Nissing 36
Grundlagen der Parallelrechnerarchitektur RAM PRAM CRCW PRAM
das parallele Ergebnisprüfer-Modell probabilistischer Ergebnisprüfer quantifiably different
parallele Ergebnisprüfer 1.Technik: Berechnung durch zufällige Eingabewerte 2.Technik: Konsistenz prüfen
Zusammenfassung