360 likes | 476 Views
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
E N D
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 René Nissing
Gliederung • Einführung • Grundlagen der Parallelrechnerarchitektur • das parallele Ergebnisprüfer-Modell • parallele Ergebnisprüfer • Zusammenfassung René Nissing
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 René Nissing
Gliederung • Einführung • Grundlagen der Parallelrechnerarchitektur • das parallele Ergebnisprüfer-Modell • parallele Ergebnisprüfer • Zusammenfassung René Nissing
Grundlagen der Parallelrechnerarchitektur • Zielsetzungen und Einsatzbereiche der Parallelverarbeitung • Rechnermodelle • RAM • PRAM • CRCW PRAM René Nissing
Grundlagen der Parallelrechnerarchitektur • 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. René Nissing
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 René Nissing
Grundlagen der Parallelrechnerarchitektur • Rechnermodelle • RAM René Nissing
Grundlagen der Parallelrechnerarchitektur • Rechnermodelle • PRAM • besteht aus mehreren RAM´s • n identische Prozessoren • Zugriff auf gemeinsamen Speicher • gemeinsamer Takt => gleichzeitige Ausführung von Operationen René Nissing
Grundlagen der Parallelrechnerarchitektur • 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 René Nissing
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 René Nissing
Grundlagen der Parallelrechnerarchitektur • 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 René Nissing
Gliederung • Einführung • Grundlagen der Parallelrechnerarchitektur • das parallele Ergebnisprüfer-Modell • parallele Ergebnisprüfer • Zusammenfassung René Nissing
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 René Nissing
Das parallele Ergebnisprüfer-Modell • 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 RPf mit einer Wahrscheinlichkeit ≥ 1- α "PASS" aus • dabei darf der Ergebnisprüfer nur eine polynomielle Anzahl an Prozessoren benutzen René Nissing
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 René Nissing
Das parallele Ergebnisprüfer-Modell • 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 René Nissing
Gliederung • Einführung • Grundlagen der Parallelrechnerarchitektur • das parallele Ergebnisprüfer-Modell • parallele Ergebnisprüfer • Zusammenfassung René Nissing
parallele Ergebnisprüfer • Techniken • 1. Berechnung durch zufällige Eingabewerte (random inputs) • 2. Konsistenzbeweis René Nissing
parallele Ergebnisprüfer • 1. Technik: Berechnung durch zufällige Eingabewerte • Programm P berechnet Funktion f bei Eingabewert x • „kompatible“ Eingabewerte • symmetrische Funktionen René Nissing
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 René Nissing
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 René Nissing
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 René Nissing
Algorithmus René Nissing
Phase 1 Eingabe E Programm P Ausgabe A Comparer Programm P A1 E1 Parallele Berechnung von k Permutationen Programm P A2 E2 … … … Programm P Ak Ek A <> A1, A2, …, Ak ? Gib „FAIL“ aus ja nein Gib „PASS“ aus
Phase 2 Prozessor 1 von k π1(100…00) P A1 = t1 j=1 100…00 Prozessor 1 von k π2(100…00) P A2 = t2 … … j=2 110…00 Parallele Berechnung von k Permutationen Prozessor 1 von k πk(100…00) P Ak = tk … … ja j=n-1 111…10 nein … Gib „PASS“ aus Gib „FAIL“ aus j=n 111…11
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 René Nissing
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 René Nissing
parallele Ergebnisprüfer • Berechnung durch zufällige Eingabewerte • Laufzeitanalyse Ergebnisprüfer • Prüflaufzeit ist O(log*n) • Anzahl der Prozessoren ist O(n2). René Nissing
parallele Ergebnisprüfer • 2. Technik: Konsistenz gewährleisten • dynamische Programmierung • Aufteilen der Eingabemenge • Ausgabewert zusammenbauen • Wertetabelle füllen • Konsistenz der Einträge René Nissing
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 René Nissing
Algorithmus René Nissing
parallele Ergebnisprüfer • Konsistenz gewährleisten • Laufzeitanalyse: • die Prüflaufzeit ist O(1) • die Anzahl der Prozessoren ist O(n3) René Nissing
Gliederung • Einführung • Grundlagen der Parallelrechnerarchitektur • das parallele Ergebnisprüfer-Modell • parallele Ergebnisprüfer • Zusammenfassung René Nissing
Zusammenfassung • 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 René Nissing