Entwurf von Ergebnisprüfern für parallel laufende Programme

36
1 Entwurf von Ergebnisprüfern für parallel laufende Programme René Nissing

description

Entwurf von Ergebnisprüfern für parallel laufende Programme. René Nissing. Gliederung. Einführung Grundlagen der Parallelrechnerarchitektur das parallele Ergebnisprüfer-Modell parallele Ergebnisprüfer Zusammenfassung. Gliederung. Einführung Grundlagen der Parallelrechnerarchitektur - PowerPoint PPT Presentation

Transcript of Entwurf von Ergebnisprüfern für parallel laufende Programme

Page 1: Entwurf von Ergebnisprüfern für parallel laufende Programme

1

Entwurf von Ergebnisprüfern für parallel laufende Programme

René Nissing

Page 2: Entwurf von Ergebnisprüfern für parallel laufende Programme

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

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

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

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

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

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

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

parallele Ergebnisprüfer René Nissing 9

Rechnermodelle RAM

Grundlagen der Parallelrechnerarchitektur

Page 10: Entwurf von Ergebnisprüfern für parallel laufende Programme

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

parallele Ergebnisprüfer René Nissing 25

Algorithmus

Page 26: Entwurf von Ergebnisprüfern für parallel laufende Programme

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

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

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

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

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

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

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

parallele Ergebnisprüfer René Nissing 33

Algorithmus

Page 34: Entwurf von Ergebnisprüfern für parallel laufende Programme

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

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

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