Automatisches Parallelisieren

Ähnliche Dokumente
Automatisches Parallelisieren

Automatisches Parallelisieren

Automatisches Parallelisieren

Automatisches Parallelisieren

2.3 View Serialisierbarkeit

Compiler für f r Eingebettete Systeme (CfES)

Beispiele von Branch Delay Slot Schedules

IHS2 Seminar. Jorge Meza Zusebau R2082, Tel: -4128

Statt Turingmaschinen anzugeben, genügt die Angabe eines C++ Programms oder die Angabe eines Pseudocodes.

Tutorium Rechnerorganisation

Codegenerierung für Basisblöcke (1)

Theoretische Grundlagen der Informatik

p max = 4 T = 8 Work = 28 3 I = Work / T = 3,5 2 Cost = p max * T = 32 U = I / p max = 87,5% 1

Parallele Programmiermodelle

Vortrag 20: Kurze Vektoren in Gittern

ADS: Algorithmen und Datenstrukturen 2

Der LLL-Algorithmus. Konrad Schade. January 19, 2007

3 Elementare Umformung von linearen Gleichungssystemen und Matrizen

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

Theoretische Grundlagen der Informatik

Konfliktgraph. Satz und Definition

Effiziente Algorithmen (SS2015)

Einführung in die Theoretische Informatik

Algorithmische Methoden für schwere Optimierungsprobleme

Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III

X Inhaltsverzeichnis 2.7 StrukturorientierteModelle Komponenten-Verbindungsdiagramm (CCD) HeterogeneModelle Kontr

Kapitel 1 Parallele Modelle Wie rechnet man parallel?

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Konzepte der parallelen Programmierung

Algorithmen zur Visualisierung von Graphen Lagenlayouts

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Theoretische Grundlagen der Informatik

Informatik III - WS07/08

2.3 Basis und Dimension

Systeme 1: Architektur

Theoretische Informatik II

Datenbanken: Ablaufpläne und Serialisierbarkeit

8 Der Kompaktheitssatz und der Satz von Löwenheim und Skolem

Allgemeine Lösung mittels Hazard Detection Unit

Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember Bitte immer eine Reihe freilassen

p max = 4 T = 8 Work = 28 3 I = Work / T = 3,5 2 Cost = p max * T = 32 U = I / p max = 87,5% 1

Graphentheorie. Kürzeste Wege. Kürzeste Wege. Kürzeste Wege. Rainer Schrader. 25. Oktober 2007

Reduktion. 2.1 Abstrakte Reduktion

ADS 2: Algorithmen und Datenstrukturen

Der LLL - Algorithmus. Seminar ganzzahlige Optimierung Wintersemester 2006/2007

Graphentheorie. Perfekte Graphen. Perfekte Graphen. Perfekte Graphen. Rainer Schrader. 22. Januar 2008

Einführung in Berechenbarkeit, Komplexität und Formale Sprachen

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck. 10 Matching-Probleme

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2017/2018

Approximationsalgorithmen

5 Sortieren in eindimensionalen Zellularautomaten

Universität Karlsruhe (TH)

Übung 2 Algorithmen II

ADS: Algorithmen und Datenstrukturen 2

Kapitel 5 Mehrversionen-CC. MVCC: Annahmen & Eigenschaften

Näherungsalgorithmen (Approximationsalgorithmen) WiSe 2008/09 in Trier. Henning Fernau Universität Trier

KESS - Die Komplexität evolutionär stabiler Strategien

Theoretische Grundlagen der Informatik

Algorithmen II Vorlesung am

bekannt: Eliminationsverfahren von Gauß Verfahren führt zu einer Zerlegung der Koeffizientenmatrix: A = LR A = LR

Klammersprache Definiere

ADS: Algorithmen und Datenstrukturen 2

Kapitel 5. Parallelverarbeitung. Formen der Parallelität

Einführung in das Seminar Algorithmentechnik

Übung 2. Letzte Änderung: 19. Mai 2017

Kapitel 1.4. Exkurs: Entscheidbarkeit und Komplexität. Mathematische Logik (WS 2012/3) K. 1.4: Entscheidbarkeit und Komplexität 1/10

Vorlesung Datenstrukturen

Synthese Eingebetteter Systeme. 12 Synthese: Bereitstellung (Allocation)

Access-Modell. A4. Im Operandenteil von Anweisungen vorkommende Objekte seien unstrukturiert und stehen in keinerlei Beziehung zueinander.

Rückblick auf die letzte Vorlesung. Bemerkung

Vorlesung 3: Graphenalgorithmen. Markus Püschel David Steurer Peter Widmayer. PDF download goo.gl/ym3spq

Einführung (1/3) Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (1) Vorlesungen zur Komplexitätstheorie.

Informatik I: Einführung in die Programmierung

UNABHÄNGIGER LASTEN. Vorlesung 9 BALANCIERUNG DYNAMISCHER. Graphenalgorithmen und lineare Algebra Hand in Hand

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!

. Die obige Beschreibung der Laufzeit für ein bestimmtes k können wir also erweitern und erhalten die folgende Gleichung für den mittleren Fall:

Grundlagen der theoretischen Informatik

Rechnerarchitektur (RA)

Rechnerarchitektur (RA)

Aufgabe Mögliche Punkte Erreichte Punkte a b c d Σ a b c d Σ x1 13

Technische Grundlagen der Informatik 2 SS Einleitung. R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt E-1

1 Der Simplex Algorithmus I

Technische Universität München Zentrum Mathematik. Übungsblatt 7

Definition 7.1. Der Coxeter Graph zu W ist der ungerichtete gewichtete Graph Γ W = (V, E), mit Eckenmenge V und Kantenmenge E, gegeben durch V = und

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck

Dualitätssätze der linearen Optimierung

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Anordnungstechniken für konvektionsdominante Probleme im Ê 3. Dimensionsunabhängige Verfahren. Algorithmen für planare Graphen. Numerische Beispiele

C-to-CUDA-Compiler. Johannes Kölsch. October 29, 2012

Optimierung. Vorlesung 08

Einführung in die Theoretische Informatik

Kapitel 3: Sortierverfahren Gliederung

Informatik I. Informatik I Was haben wir gelernt? 28.2 Algorithmusbegriff Was geht nicht? 28.1 Was haben wir gelernt?

Algorithmen und Datenstrukturen 2-1. Seminar -

Grundlagen: Algorithmen und Datenstrukturen

2.4 Verallgemeinerte Ungleichungen

2.4 Starke Zusammenhangskomponenten in Digraphen

verschiedenen Recheneinheiten, die miteinander kommunizieren können

Vorlesung Datenstrukturen

Transkript:

Automatisches Parallelisieren Vorlesung im Wintersemester 2009/10 Eberhard Zehendner FSU Jena Thema: Motivation Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 1 / 15

FAQ zur Vorlesung Automatisches Parallelisieren Soll ich diese Vorlesung wirklich hören? Natürlich. Besonders bei Interesse für Rechnerarchitektur! Lerne ich in der Vorlesung, perfekte Programme zu schreiben? Vielleicht. Auf jeden Fall aber Techniken, mit denen Compiler gute Optimierungen automatisch durchführen. Muss ich an der Übung teilnehmen? Nein. Doch ein gutes, altes Sprichwort sagt: Übung macht den Meister. Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 2 / 15

Was moderne Prozessoren so alles können... Da gibt es zum Beispiel... überlappte Ausführung (instruction pipelining) MIPS parallele Funktionseinheiten (superscalar, VLIW, EPIC) Ausführung außerhalb Programmreihenfolge (out-of-order) explizite Parallelität (VLIW, EPIC) TriMedia, IA-64 grobkörnige Parallelität (threads, CMP) IBM Power5 Teilwort-Parallelität (SIMD, MMX etc.) Pentium III Pentium, TriMedia, IA-64 Pentium Pro Problem Und wie wird das alles möglichst gut genutzt? Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 3 / 15

... und hier einige klassische Rechnerarchitekturen Explizit parallel programmiert werden zum Beispiel Multiprozessoren Cluster Vektorrechner Feldrechner Fakt Es ist noch kein explizit paralleles Programm vom Himmel gefallen... Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 4 / 15

Anwendungen der Restrukturierung von Programmen Restrukturierung von Programmen......ist semantikerhaltende Umformung von (geschriebenem / irgendwie präsentem) Programmcode Anwendungsbereiche Ablaufoptimierung (Scheduling) Parallelisierung/Vektorisierung und viele weitere, die in dieser Vorlesung aber nicht behandelt werden Fakt Für RISC-Prozessoren, die ein sequenzielles Maschinenprogramm nach dem Fließbandprinzip verarbeiten, ergeben sich gute Leistungsdaten i. A. nur durch Befehlsanordnung, d. h. durch semantikerhaltendes Vertauschen von Maschinenbefehlen. Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 5 / 15

Restrukturierung zur Ablaufoptimierung Charakteristika von RISC-Prozessoren sequenzieller Befehlsstrom als Eingabe überlappte Verarbeitung nach dem Fließbandprinzip optimiertes Verhalten durch Befehlsanordnung Definition (Befehlsanordnung) Vertauschen von Maschinenbefehlen muss sequenzielle Semantik garantieren Automatisierung unumgänglich gute statische Befehlsanordnung händisch nicht zu leisten erfordert daher automatische Ablaufplanung (Scheduler) dynamische Befehlsanordnung im Prozessor wirft ähnliche Probleme auf Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 6 / 15

Semantische Äquivalenz und Zeitverhalten Beispiel (DLX-Pipeline mit Forwarding und Pipeline-Interlock) ADD LW SUB R3, R6, R7 R1, 0(R2) R4, R1, R5 in sequenzieller Semantik äquivalent zu LW ADD SUB R1, 0(R2) R3, R6, R7 R4, R1, R5 Problem Ist die Ausführung in der Pipeline gleich schnell? Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 7 / 15

Datenabhängigkeiten behindern Arbeit der Pipeline Stillstand der DLX-Pipeline durch Datenkonflikt Ladebefehl (LW) definiert gelesenen Wert (R1) Subtraktionsbefehl (SUB) benutzt diesen Wert Kausalität: Definition vor Benutzung zwingend Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 8 / 15

Unterschiedliche Ausführungsdauer trotz semantischer Äquivalenz Stillstand durch Datenabhängigkeit ADD R3, R6, R7 LW R1, 0(R2) ; Datenabhängigkeit erzwingt Stillstand SUB R4, R1, R5 Zeitgewinn durch Befehlsanordnung LW R1, 0(R2) ADD R3, R6, R7 ; Latenz wird verborgen SUB R4, R1, R5 Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 9 / 15

Gefahr durch Pipeline-Konflikte Pipeline-Konflikte müssen behandelt werden entweder durch die Hardware oder durch den Compiler sonst könnte die Programmsemantik verletzt werden Beispiel (Pipeline ohne Konfliktbehandlung) LW SUB R1, 0(R2) R4, R1, R5 Sequenzielle Semantik hier nicht äquivalent zur Pipeline-Semantik! Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 10 / 15

Alternative zur Umordnung: Einfügen von Leerbefehlen Beispiel (Pipeline mit Forwarding, ohne Interlock) Sequenzielle Semantik von LW SUB R1, 0(R2) R4, R1, R5 äquivalent zu Pipeline-Semantik von LW NOP SUB R1, 0(R2) R4, R1, R5 ; Leerbefehl löst Datenkonflikt Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 11 / 15

Compiler für Pipelines mit Konfliktbehandlung In-Order-Ausführung (z. B. Pentium) Pipeline-Interlock garantiert korrekte Ausführung aber: Pipeline kann Latenzen nicht verbergen Befehlsanordnung durch Compiler sehr wichtig Out-of-Order-Ausführung (Intel: ab Pentium Pro) lokale Befehlsanordnung durch Pipeline entscheidend: Größe des Befehlsfensters Heuristiken nötig (z. B. Vorziehen von Ladebefehlen) Compiler stärker auf globale Befehlsanordnung orientieren Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 12 / 15

Restrukturierung zur Parallelisierung Extraktion von Parallelität sequenzielle Programme enthalten oft implizite Parallelität Parallelisierung: explizite Offenlegung verborgener Parallelität führt auf ähnliche Probleme wie Befehlsanordnung für sequenzielle Programme Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 13 / 15

Automatische Parallelisierung Parallelisierende/vektorisierende Übersetzer Eingabe: sequenzielles Programm Ausgabe: explizit paralleles Programm mit derselben Semantik Zielarchitektur: Parallelprozessor bzw. Vektorrechner Schwerpunkt: parallele und/oder überlappte Ausführung von Anweisungsinstanzen aus dem Inneren von Schleifen Parallelisierung in der Pipeline (z. B. superskalarer RISC-Prozessor) parallel und/oder überlappt ausführbare Maschinenbefehle werden dynamisch aus einem sequenziellen Befehlsstrom bestimmt parallele und/oder überlappte Ausführung beliebiger Anweisungsinstanzen Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 14 / 15

Weiterführende Literatur U. Brinkschulte, Th. Ungerer: Mikrocontroller und Mikroprozessoren. Springer, 2002. J. Šilc, B. Robič, Th. Ungerer: Processor Architecture From Dataflow to Superscalar and Beyond. Springer, 1999. J. L. Hennessy, D. A. Patterson: Computer Architectures: A Quantitative Approach. 2. Auflage. Morgan Kaufmann, 1996. M. K. Smotherman: Understanding EPIC Architectures and Implementations. Proc. 40th Annual ACM Southeast Conference, Raleigh, April 2002, pp. 71-78. Online www.cs.clemson.edu/~mark/464/acmse_epic.pdf Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Motivation 15 / 15

Automatisches Parallelisieren Vorlesung im Wintersemester 2009/10 Eberhard Zehendner FSU Jena Thema: Datenabhängigkeitsanalyse Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Datenabhängigkeitsanalyse 1 / 16

Konkrete Berechnungsaufgaben: Abstraktion tut Not Der Begriff des Auftrags Hinter dem abstrakten Begriff des Auftrags lassen sich viele verschiedene konkrete Berechnungsaufgaben verstecken. Ein Auftrag könnte im Kontext der Vorlesung beispielsweise sein einzelne Anweisung eines Hochsprachenprogramms einzelner Befehl in einem Maschinenprogramm einzelner Maschinenbefehl in einem Befehlsstrom... im weiteren Sinne aber auch einzelne Rechenoperation Teiloperation einer Rechenoperation Teilaufgabe innerhalb der Ausführung eines Maschinenbefehls Ausführung eines beliebig komplexen Prozesses (job, task, process, thread) Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Datenabhängigkeitsanalyse 2 / 16

Durch ein Programm erzeugte Aufträge Beispiel 1 (Lösung eines linearen Gleichungssystems Ax = b) A R (n,n) nicht singuläre untere Dreiecksmatrix. Vektoren b, x R n. DO i = 1, n s i,i : x(i) = b(i) / a(i, i) DO j = i + 1, n s i,j : b(j) = b(j) - a(j, i) * x(i) Herkunft und Bedeutung der Aufträge Aufträge s i, entstehen in der i-ten Iteration der äußeren Schleife s i,i leistet die Berechnung von x(i) s i,j mit j > i bewirkt durch Rücksubstitution von x(i) eine Reduktion des Gleichungssystems Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Datenabhängigkeitsanalyse 3 / 16

Statische Programmanalyse Prinzipien der statischen Analyse betrachtet nur Programmtext (keine Daten) abstrahiert von konkreter Bedeutung der Operationen Konsequenzen für die Durchführung der Analyse erhebliche Vereinfachung evtl. Genauigkeitsverlust Definition (konservative Analyse) bestehende Abhängigkeiten müssen berücksichtigt werden fiktive Abhängigkeiten dürfen hinzugenommen werden Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Datenabhängigkeitsanalyse 4 / 16

Annahmen für statische Analyse: Pfade Pfade im Kontrollflussgraphen Alle Pfade in einem Kontrollflussgraphen werden als mögliche Programmabläufe angesehen. Beispiel (fiktive Pfade) IF(B) S1 IF(NOT B) S2 Dabei werde einfache Variable B nicht von Block S1 verändert. Kontrollflussgraph enthält zwei fiktive Pfade. Faktisch keine Abhängigkeiten zwischen Blöcken S1 und S2. Analyse kann aber solche Abhängigkeiten vorspiegeln. Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Datenabhängigkeitsanalyse 5 / 16

Annahmen für statische Analyse: Operationen Abstraktion von Aufträgen Kenntnis über konkreten Auftrag s beschränkt sich auf Angabe des von s benutzten Speichers. Definition (Speicherobjekte) In(s) = Menge der von s gelesenen Speicherobjekte Out(s) = Menge der von s beschriebenen Speicherobjekte Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Datenabhängigkeitsanalyse 6 / 16

Annahmen für statische Analyse: Speicherobjekte Speicherobjekt ist zum Beispiel... eine einzelne Speicherzelle ein zusammenhängender Speicherblock der gesamte Speicher ein Register ein Kommunikationskanal, der Daten von einem Auftrag zum anderen transportiert Hinweis Lokaler Speicher, auf dem während der gesamten Programmausführung lediglich ein Auftrag arbeitet, kann dabei außer Betracht bleiben. Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Datenabhängigkeitsanalyse 7 / 16

Die Bernstein-Bedingungen Definition (unabhängige Aufträge) Aufträge s i, s j heißen unabhängig (s i s j ), wenn alle Bernstein-Bedingungen gelten: Out(s i ) In(s j ) = In(s i ) Out(s j ) = Out(s i ) Out(s j ) = Folgerung (Unabhängigkeit ist symmetrische Relation) s i s j s j s i Interpretation Sind zwei Aufträge unabhängig, kann keiner der beiden das Ergebnis der Berechnung des jeweils anderen beeinflussen wie auch immer der zeitliche Ablauf ihrer Ausführung sein mag. Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Datenabhängigkeitsanalyse 8 / 16

Aufträge im Konflikt Definition (Konflikt) Die Konfliktrelation ist das Komplement der Unabhängigkeitsrelation: s i und s j stehen in Konflikt (s i s j ) genau dann, wenn (s i s j ) Folgerung (Konflikt ist symmetrische Relation) s i s j s j s i Interpretation Ein Konflikt s i s j bewirkt eine Datenabhängigkeit, wenn eine feste zeitliche Reihenfolge zwischen s i und s j besteht. Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Datenabhängigkeitsanalyse 9 / 16

Klassifizierung von Datenabhängigkeiten Definition (Datenabhängigkeit) s j ist von s i abhängig (s i s j ) genau dann, wenn s i und s j in Konflikt stehen (s i s j ) und s i vor s j ausgeführt werden soll (s i < s j ) Klassen von Datenabhängigkeiten Die drei Teilprädikate der Bernstein-Bedingungen verweisen auf die unterschiedlichen Ursachen einer Datenabhängigkeit: Flussabhängigkeit: Out(s i ) In(s j ) Gegenabhängigkeit: In(s i ) Out(s j ) Ausgabeabhängigkeit: Out(s i ) Out(s j ) Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Datenabhängigkeitsanalyse 10 / 16

Flussabhängigkeit: Out(s 1 ) In(s 2 ) Beispiel s 0 : x=1 s 1 : x=2 s 2 : y=x Charakteristika Zu lesender Wert (hier 2) muss zuvor erzeugt werden (Kausalität). Dies ist die einzige Form von Datenabhängigkeit in Programmen mit Einmal-Zuweisungseigenschaft. Jede Variable steht dort für genau einen Wert. Beispiel (Fortsetzung: Fehlerhafte Vertauschung) s 0 : x=1 s 2 : y=x s 1 : x=2 Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Datenabhängigkeitsanalyse 11 / 16

Gegenabhängigkeit: In(s 1 ) Out(s 2 ) Beispiel s 0 : x=1 s 1 : y=x s 2 : x=2 Charakteristika Zu lesender Wert (hier 1) darf nicht überschrieben werden. Durch Umbenennung von Programmvariablen auflösbar: Beispiel (Fortsetzung) s 0 : x=1 s 1 : y=x s 2 : z=2 Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Datenabhängigkeitsanalyse 12 / 16

Ausgabeabhängigkeit: Out(s 1 ) Out(s 2 ) Beispiel s 1 : x=1 s 2 : x=2 Charakteristika Produzierter Wert (hier 2) darf nicht überschrieben werden. Durch Umbenennung von Programmvariablen auflösbar: Beispiel (Fortsetzung) s 1 : x=1 s 2 : z=2 Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Datenabhängigkeitsanalyse 13 / 16

Approximationsfehler durch Bernstein-Bedingungen Die Bernstein-Bedingungen sind konservativ Aufträge s i s j sind in beliebiger Reihenfolge (auch parallel oder überlappt) ausführbar. Die Bernstein-Bedingungen sind evtl. zu pessimistisch Bernstein-Bedingungen abstrahieren von konkreten Operationen Out( ), In( ) basieren auf jeweiliger Speicherabstraktion Auftragspaare in Konflikt (s i s j ) evtl. trotzdem in beliebiger sequenzieller Reihenfolge ausführbar (sog. Interleavingparallelität) Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Datenabhängigkeitsanalyse 14 / 16

Bernstein-Bedingungen zu pessimistisch Beispiel (Interleavingparallelität nicht erkannt) Für s 1 : x=x+1 und s 2 : x=x-1 gilt s 1 ; s 2 s 2 ; s 1, wenn eine zirkuläre Arithmetik (wie z. B. in der Programmiersprache C) vorausgesetzt wird. Die statische Analyse reduziert die Bedeutung von s 1 und s 2 auf In(s 1 ) = Out(s 1 ) = In(s 2 ) = Out(s 2 ) = x, woraus s 1 s 2 folgt. Aus Sicht der statischen Analyse ist es dann nicht mehr möglich, eine beliebige Reihenfolge der Aufträge zu wählen, da auch die Aufträge s 1 : x=x+1 und s 2 : x=2*x zu In(s 1 ) = Out(s 1 ) = In(s 2 ) = Out(s 2 ) = x führen, aber nicht s 1 ; s 2 s 2 ; s 1 gilt. Hinweis Aus der Interleavingparallelität zweier Aufträge folgt noch nicht, dass diese parallel ausgeführt werden können. Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Datenabhängigkeitsanalyse 15 / 16

Speicherabstraktion beeinflusst Analysegenauigkeit Beispiel (Voraussetzung: Alias-freie Variablennamen) s 1 : A(I)=X s 2 : A(I+1)=Y s 3 : Z=B(J) Ausmaß fiktiver Konflikte folgt Granularität des Speichermodells einzelne Speicherzelle: keine Konflikte Speicherblöcke A und B: Konflikt zwischen s 1 und s 2 Gesamtspeicher: Konflikte zwischen allen drei Anweisungen Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Datenabhängigkeitsanalyse 16 / 16

Automatisches Parallelisieren Vorlesung im Wintersemester 2009/10 Eberhard Zehendner FSU Jena Thema: Synchronisationsmodelle Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Synchronisationsmodelle 1 / 9

Synchronisationsmodelle für Programme Ausführung von Aufträgen Bei der Ausführung von Aufträgen müssen alle vorliegenden Datenabhängigkeiten berücksichtigt werden. Die Durchsetzung einer zeitlichen Ordnung auf den auszuführenden Aufträgen erfordert Synchronisationsmechanismen. Programmsemantik, je nach Synchronisation der Aufträge durch Programmreihenfolge (sequenziell; Pipeline mit Konfliktbehandlung) Programmreihenfolge und explizit parallele Anweisungen (datenparallel) Programmreihenfolge und Barrieren (asynchron) Programmreihenfolge und Prozessorstruktur (Pipeline ohne Konfliktbehandlung) Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Synchronisationsmodelle 2 / 9

Sequenzielle Programmsemantik Ausführung von Aufträgen Vom Kontrollfluss vorgeschriebene, streng lineare Reihenfolge Auftrag greift auf Speicherobjekte erst zu, wenn Zugriffe aller Vorgängeraufträge abgeschlossen sind. Sequenzielles Programm ohne Zufallsfunktion ist deterministisch. Anwendungen Programmierung von klassischen sequenziellen Prozessoren Benutzung von Programmiersprachen wie FORTRAN, Pascal, C Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Synchronisationsmodelle 3 / 9

Datenparallele Programmsemantik Ausführung von Aufträgen Gruppe von Aufträgen parallel im Lock-Step-Modus ausführen Auftrag einer Gruppe beschreibt Speicherobjekte erst, wenn alle lesenden Zugriffe der Gruppe abgeschlossen sind. Kontrollfluss-induzierte, streng lineare Reihenfolge von Gruppen Gruppe greift auf Speicherobjekte erst zu, wenn Zugriffe aller Vorgängergruppen abgeschlossen sind. Festlegung (führt zu deterministischem Programm) Out(s i ) Out(s j ) = für s i, s j aus derselben Gruppe Anwendungen SIMD- oder VLIW-Architekturen Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Synchronisationsmodelle 4 / 9

Asynchrone Programmsemantik Ausführung von Aufträgen synchronisiert oder unsynchronisiert Bei Synchronisation s i < s j erfolgen Zugriffe auf Speicherobjekte durch s j erst nach allen Zugriffen auf Speicherobjekte durch s i. Unsynchronisierte Aufträge greifen in unbekannter Reihenfolge auf gemeinsame Speicherobjekte zu. Festlegung (führt zu determiniertem Ergebnis) Nur unabhängige Aufträge dürfen unsynchronisiert laufen. Anwendungen asynchron parallele Architekturen verteilte Systeme Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Synchronisationsmodelle 5 / 9

Semantik für Pipeline mit Konfliktbehandlung Ausführung von Aufträgen Sequenzieller Befehlsstrom, Aufträge können jedoch überlappt ausgeführt werden. Superskalarer Prozessor extrahiert Parallelität aus dem Befehlsstrom. Erzwingung sequenzieller Semantik durch Pipeline-Interlock, Registerumbenennung, dynamisches Scheduling, etc. Jeder Auftrag darf vor oder gleichzeitig mit Vorgängeraufträgen auf Speicherobjekte zugreifen, wenn dadurch die sequenzielle Semantik nicht verletzt wird. Anwendungen einfache Programmierung superskalarer Prozessoren Leistungsskalierung durch aufwärtskompatiblen Binärcode Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Synchronisationsmodelle 6 / 9

Semantik für Pipeline ohne Konfliktbehandlung Ausführung von Aufträgen Sequenzieller Befehlsstrom, Aufträge werden jedoch überlappt ausgeführt. Keine (vollständige) Erkennung/Behandlung von Konflikten durch Hardware Somit keine strenge Garantierung der sequenziellen Semantik Voll spezifizierte Semantik erfordert konkretes Prozessormodell, daher unüblich Hilfsweise erfolgt Herstellung der sequenziellen Semantik durch Einschieben weiterer Maschinenbefehle (notfalls Leeroperationen) zwischen datenabhängige Maschinenbefehle, deren Abarbeitung dadurch gegeneinander verzögert wird. Wünschenswerte Rahmenbedingungen (fiktive) datenunabhängige Latenzen (auch für Cache Miss) ggf. realisierbar durch (teilweisen) Stillstand der Pipeline Anwendungen VLIW-Prozessoren, ältere RISC-Prozessoren (z. B. MIPS R3000) effiziente Programmierung moderner RISC-Prozessoren Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Synchronisationsmodelle 7 / 9

Prozessormodell beeinflusst Programmsemantik Beispiel (Pipeline ohne bzw. mit Forwarding) Maschinenprogramm LW R1, 0(R2) NOP SUB R4, R1, R5 liefert unterschiedliche Ergebnisse je nach Prozessormodell Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Synchronisationsmodelle 8 / 9

Effiziente Programmierung von RISC-Prozessoren Statische Planung aller Raum-Zeit-Aktivitäten Annahme einer Pipeline ohne Konfliktbehandlung (ignoriert alle diesbezüglichen Hardware-Fähigkeiten) optimale (oder gute) Befehlsanordnung für dieses Modell Ausführung in Pipeline mit Konfliktbehandlung Verdichtung des erzeugten Codes (keine Leeroperationen, NOP-Befehle, etc.) Ausführung folgt weitgehend statisch geplantem Schema Unvorhergesehene Ereignisse (z. B. Cache Miss) werden dynamisch durch Konfliktbehandlung in der Hardware behandelt Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Synchronisationsmodelle 9 / 9

Automatisches Parallelisieren Vorlesung im Wintersemester 2009/10 Eberhard Zehendner FSU Jena Thema: Ablaufplanung mit unbeschränkten Ressourcen Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 1 / 30

Zeitliche Ordnung sequenzieller Programme Sequenzielles Programm Ein sequenziell ablaufendes Programm induziert auf den von ihm erzeugten Aufträgen eine lineare zeitliche Ordnung Definition (lineare zeitliche Ordnung <) Für Aufträge s i s j gilt genau eine der folgenden Eigenschaften: Ausführung von s i endet, bevor Ausführung von s j beginnt (s i < s j ) Ausführung von s j endet, bevor Ausführung von s i beginnt (s j < s i ) Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 2 / 30

Präzedenzrelation für sequenziell erzeugte Aufträge Abschwächung der linearen Ordnung Erzwungene lineare Ordnung wird unter Beachtung aller Datenabhängigkeiten zur Präzedenzrelation abgeschwächt Beibehaltung der bisherigen Reihenfolge für alle abhängigen Auftragspaare ausreichend Definition (Präzedenzrelation ) s i s j s i < s j s i s j Folgerung (semantische Äquivalenz trotz Abschwächung) In jeder sequenziellen Ordnung der Aufträge, die alle Präzedenzen s i s j enthält, erfolgen die Zugriffe auf gemeinsame Speicherobjekte in derselben Reihenfolge wie in der ursprünglichen linearen Ordnung Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 3 / 30

Transitive Vervollständigung der Präzedenzrelation Induzierte Präzedenzen u v und v w bedeutet, dass u vollständig vor v auszuführen ist, v vollständig vor w Impliziert, dass auch u vollständig vor w auszuführen ist Deshalb kann Präzedenz u w ergänzt werden (muss aber nicht) Transitive Vervollständigung der Präzedenzrelation durch Bildung der transitiven Hülle Definition (transitive Hülle + ) + = k mit 1 = und k = {(u, w) : v, (u, v), (v, w) k 1 } k=1 Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 4 / 30

Ausschälen der Präzedenzrelation Weglassen von Präzedenzen {u v, v w, u w} hinsichtlich Serialisierung redundant u w evtl. weglassen, da Wirkung aus u v und v w folgt Graduelles Ausschälen liefert Relation T mit T T + Kleinstmögliches T existiert (Kern der Präzedenzrelation) Definition (Kern der Präzedenzrelation ) kern( ) = \ k k=2 Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 5 / 30

Fiktive Präzedenzen Willkürliche Einschränkung der Präzedenzrelation Präzedenzrelation um optionale Präzedenzen ergänzbar Ergänzung ist widerspruchsfrei, wenn sich keine zirkulären Präzedenzen durch transitive Vervollständigung ableiten lassen Definition (widerspruchsfreie Ergänzung der Präzedenzrelation) Ergänzung von durch Relation R ist widerspruchsfrei genau dann, wenn es keinen Auftrag u mit (u, u) ( R) + gibt Folgerung Statt Relation kann jede Relation T mit kern( ) T ( R) + verwendet werden Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 6 / 30

Präzedenzgraphen Graphische Repräsentation von Präzedenzen System von Aufträgen mit einer zwischen ihnen bestehenden Präzedenzrelation abstrakt dargestellt durch Präzedenzgraph Definition (Präzedenzgraph) Präzedenzgraph ist gerichteter azyklischer Graph G = (V, E), wobei Knoten v V für einen bestimmten Auftrag steht Kante e = (u, v) E V V Präzedenz u v ausdrückt Einschränkung V bis auf Weiteres als endlich vorausgesetzt Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 7 / 30

Gewichteter Präzedenzgraph Latenzen Ergänzung eines Präzedenzgraphen durch Funktion λ: V N liefert gewichteten Präzedenzgraphen G = (V, E, λ) λ(v) beschreibt Ausführungsdauer (Latenz) des Auftrags v Latenz λ(v) wird als fest und bekannt vorausgesetzt Modell simplifiziert reale Welt, in der λ(v) durchaus variieren kann Bemerkung Festlegung der Ausführungsdauer auf nicht negative ganzzahlige Werte keine Einschränkung Ausführungsdauer grundsätzlich nicht negative rationale Zahl Kann wegen Endlichkeit von V zu nicht negativer ganzer Zahl skaliert werden Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 8 / 30

Präzedenzgraphen zu Beispiel 1 ungewichtet einheitliche Latenz differierende Latenzen Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 9 / 30

Ablaufplanung Zeitliche Ordnung Ablaufplan (Schedule) regelt Anordnung der Aufträge in der Zeit Ablaufplan gibt zu jedem Auftrag den Beginn der Ausführung an Definition (Ablaufplan) Funktion θ : V N heißt Ablaufplan eines Präzedenzgraphen G = (V, E, λ) Definition (Abhängigkeitsbedingungen) θ(u) + λ(u) θ(v) für alle (u, v) E Bemerkung Gegen- und Ausgabeabhängigkeiten können auf dem Niveau strikter Präzedenzen nicht von Flussabhängigkeiten unterschieden werden Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 10 / 30

Notwendigkeit der Abhängigkeitsbedingungen Satz (zulässiger Ablaufplan) Ablaufplan θ hat θ(u) + λ(u) θ(v) für alle (u, v) E zu erfüllen Beweis. Präzedenz u v entspricht Kante (u, v) des Präzedenzgraphen Ausführung des Auftrags u beginnt zur Zeit θ(u) u besitzt eine Ausführungsdauer von λ(u) Ausführung von u endet damit zur Zeit θ(u) + λ(u) Ausführung von v darf somit nicht vor θ(u) + λ(u) beginnen Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 11 / 30

Abhängigkeitsbedingungen auch hinreichend? Satz (Vollständigkeit der Abhängigkeitsbedingungen) Abhängigkeitsbedingungen hinreichend für sequenzielle Semantik und für asynchrone Semantik mit unbeschränkten Ressourcen Beweis. Für u v beginnt v nicht vor θ(u) + λ(u) In sequenzieller Semantik keine weiteren Einschränkungen In asynchroner Semantik weitere Bedingungen nur durch Ressourcenbeschränkungen Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 12 / 30

Abhängigkeitsbedingungen und Datenparallelität Weitere Bedingungen nötig Abhängigkeitsbedingungen nicht hinreichend für datenparallele Semantik Datenparalleles Modell erzwingt weitere Einschränkungen durch Synchronisation der Gruppen von Aufträgen Beispiel (Datenparallelität ohne Ressourcenbeschränkungen) V = {A, B, C, D} E = {(A, D), (B, C), (C, D)} λ(a) = 2, λ(b) = λ(c) = λ(d) = 1 θ(a) = θ(b) = 0, θ(c) = 1, θ(d) = 2 in asynchroner Semantik zulässiger Ablaufplan In datenparalleler Semantik würden laut diesem Ablaufplan A und B in derselben Gruppe liegen; C könnte erst nach Beendigung dieser Gruppe ausgeführt werden, ein Widerspruch zu θ(c) = 1 Konsequenz: datenparallel werden mindestens 4 Zeiteinheiten benötigt, asynchron nur 3 Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 13 / 30

Transitive Vervollständigung und Ablaufpläne Transitive Vervollständigung optional Transitive Vervollständigung einer Präzedenzrelation unschädlich Ablaufplan für den zu gehörenden gewichteten Präzedenzgraphen auch Ablaufplan für den zu + gehörenden gewichteten Präzedenzgraphen (und umgekehrt) Bemerkung Aufwand für Bestimmung bzw. Überprüfung eines Ablaufplans zu + in der Regel höher als für Ablaufplan zu Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 14 / 30

Transitive Vervollständigung unschädlich Satz (Ablaufpläne und transitive Hülle) Die Mengen der Ablaufpläne auf bzw. + stimmen überein Beweis. Zu u + w Pfad (u, v 1,..., v k, w) von u nach w in G = (V, E) Für jeden Ablaufplan zu gilt: k θ(w) θ(v k ) + λ(v k ) θ(v k 1 ) + λ(v k 1 ) + λ(v k )... θ(u) + λ(u) + λ(v i ) i=1 Da λ(v i ) nicht negativ, folglich auch θ(w) θ(u) + λ(u) Ablaufplan gilt also auch für + Umkehrung erfüllt, da mit u w auch u + w gilt Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 15 / 30

Ablaufplanung und zyklenfreie Graphen Topologisches Sortieren Präzedenzgraph laut Definition stets zyklenfrei Knoten topologisch in Liste (v 1, v 2,..., v k ) sortierbar, Start mit Knoten ohne Vorgänger Für alle v i v j gilt dann i < j Satz (Existenz von Ablaufplänen) Jeder gewichtete Präzedenzgraph erlaubt mindestens einen Ablaufplan Beweis. Sequenzieller Ablaufplan über topologischer Sortierung: θ(v 1 ) = 0 θ(v i ) = θ(v i 1 ) + λ(v i 1 ) Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 16 / 30

Aufträge, Berechnungsressourcen und Parallelität Konkurrenz um Ressourcen Auftrag benötigt zur Durchführung Berechnungsressourcen (Prozessor, Funktionseinheit, Register, etc.) Aufträge konkurrieren untereinander um passende Ressourcen Parallele Ausführung der Aufträge über Datenabhängigkeiten hinaus dadurch weiter eingeschränkt Definition (unbeschränkte Ressourcen) Wir sprechen von unbeschränkten Ressourcen, wenn so viele davon vorhanden sind, dass keine Einschränkung der Parallelität resultiert Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 17 / 30

Allokation und Bindung Bindung Ressource für bestimmte Zeit an Auftrag gebunden: Funktionseinheit während eigentlicher Ausführungsphase Register vom Schreiben bis zum letztmaligen Lesen des Werts Allokation Nicht permanent verfügbare Ressource vor Bindung zuteilen: Verteiltes System oder Prozessornetzwerk kooperativ nutzen Register evtl. für Kontext umfassender Blöcke zurückhalten (globale Variablen) Funktionseinheiten dagegen normalerweise fest zugeteilt Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 18 / 30

Gesamtausführungsdauer eines Ablaufplans Definition (Gesamtausführungsdauer) (θ) = max{θ(v) + λ(v)} min {θ(v)} v V v V ist Gesamtausführungsdauer des Ablaufplans θ für Präzedenzgraph G = (V, E, λ) Interpretation Gesamtausführung dauert vom Beginn des ersten Auftrags bis zum Ende des letzten Auftrags Ohne Einschränkung künftig vorausgesetzt: erster Auftrag beginnt zum Zeitpunkt t = 0 Definition vereinfacht sich zu (θ) = max{θ(v) + λ(v)} v V Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 19 / 30

Untere Schranken für die Gesamtausführungsdauer Gesamtausführungsdauer beschränkt Auch für unbeschränkte Ressourcen (θ) nicht beliebig klein Trivial: (θ) max v V λ(v) Bessere Abschätzung durch Betrachtung von Präzedenzpfaden Definition (Latenz eines Pfads) k λ(φ) = λ(v 1, v 2,..., v k ) = λ(v i ) für Pfad Φ = (v 1, v 2,..., v k ) i=1 Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 20 / 30

Beschränkung durch kritische Pfade Satz (Scheduling-Schranke) (θ) λ(φ) für alle Pfade Φ in G Beweis. Φ = (v 1, v 2,..., v k ) Pfad in G k 1 θ(v k ) θ(v k 1 ) + λ(v k 1 )... θ(v 1 ) + λ(v i ) (θ) = max v V {θ(v) + λ(v)} θ(v k ) + λ(v k ) (θ) θ(v 1 ) + k λ(v i ) i=1 k λ(v i ) = λ(φ) i=1 i=1 Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 21 / 30

Optimierung der Gesamtausführungsdauer Ziele der Ablaufplanung mit unbeschränkten Ressourcen Ablaufplan minimaler Gesamtausführungsdauer Ablaufplan vorgegebener Gesamtausführungsdauer Definition (minimale Gesamtausführungsdauer) opt ( ) = min (θ) (dabei θ zulässig, passend zur gewählten Semantik) θ Definition (optimaler Ablaufplan) Ablaufplan θ optimal, wenn (θ) = opt ( ) Bemerkung opt ( ) ist abhängig vom Semantikmodell Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 22 / 30

Ist die Scheduling-Schranke scharf? Scheduling-Schranke in asynchroner Semantik scharf Jeder zulässige Ablaufplan in asynchroner Programmsemantik mit unbeschränkten Ressourcen ohne weitere Einschränkungen realisierbar Schranke zum Beispiel durch ASAP-Schedule erreichbar Scheduling-Schranke und datenparallele Semantik Synchronisieren der Gruppen unterbricht Lauf längs Pfad Gegenbeispiel, wie vorne gezeigt Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 23 / 30

Einige graphentheoretische Definitionen Definition Zu Präzedenzgraphen G = (V, E) definieren wir: Menge der direkten Vorgänger von v: PRED(v) = {u : (u, v) E} Menge der direkten Nachfolger von u: SUCC(u) = {v : (u, v) E} v ist ein Eintrittsknoten, falls PRED(v) = u ist ein Austrittsknoten, falls SUCC(u) = Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 24 / 30

Vorlaufzeit und Restlaufzeit Definition (Vorlaufzeit) Vorlaufzeit vl(v) eines Knotens v: längste Ausführungsdauer λ(φ) eines Pfads von einem Eintrittsknoten zu einem direkten Vorgänger von v Rekursionsformeln für Vorlaufzeit vl(v) = 0 für jeden Eintrittsknoten v vl(v) = max{vl(u) + λ(u) : u PRED(v)} sonst Definition (Restlaufzeit) Restlaufzeit rl(v) eines Knotens v: längste Ausführungsdauer λ(φ) eines Pfads von v zu einem Austrittsknoten Rekursionsformeln für Restlaufzeit rl(u) = λ(u) für jeden Austrittsknoten u rl(u) = λ(u) + max{rl(v) : v SUCC(u)} sonst Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 25 / 30

Die ASAP-Strategie ASAP (as soon as possible) Vorlaufzeit eines Knotens ist frühester Zeitpunkt, zu dem Ausführung des zugehörigen Auftrags beginnen kann Vorlaufzeit induziert daher optimalen Ablaufplan θ free (v) = vl(v) (free schedule, ASAP schedule) Satz (Optimalität des ASAP-Schedules) θ free (v) = vl(v) ist ein optimaler Ablaufplan für asynchrone Semantik Beweis. Für alle (u, v) E folgt u PRED(v) und daraus θ free (v) = vl(v) = max{vl(w) + λ(w) : w PRED(v)} vl(u) + λ(u) = θ free (u) + λ(u) Also θ free zulässiger Ablaufplan Ausführung eines Auftrags beginnt unmittelbar nach Ende der Ausführung aller direkten Vorgängeraufträge Ablaufplan folgt Pfaden im Präzedenzgraphen θ free erreicht Scheduling-Schranke, damit optimal Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 26 / 30

Konsequenzen der ASAP-Strategie Folgerung (optimale asynchrone Gesamtausführungsdauer) opt ( ) = (θ free ) = max{vl(v) + λ(v)} v V Folgerung (Scheduling-Schranke scharf) opt ( ) in asynchroner Semantik ist längste Ausführungsdauer λ(φ) eines Pfads durch den Präzedenzgraphen Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 27 / 30

Die ALAP-Strategie ALAP (as late as possible) Restlaufzeit eines Knotens ist vom Beginn der Ausführung des zugehörigen Auftrags bis zum Ende der gesamten Berechnung mindestens noch zu durchlaufende Zeit Aus opt ( ) und Restlaufzeit wird weiterer optimaler Ablaufplan θ late (v) = opt ( ) rl(v) für asynchrone Semantik abgeleitet Ausführung eines Auftrags wird so spät wie für optimalen Ablaufplan gerade noch möglich begonnen Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 28 / 30

Weitere optimale Ablaufpläne Notwendige Bedingung für optimale Ablaufpläne Neben θ free und θ late evtl. weitere optimale Ablaufpläne Für diese gilt θ free (v) θ(v) θ late (v) v V Beispiel (Bedingung notwendig, aber nicht hinreichend) Auftrag ASAP ALAP kein Ablaufplan A 0 1 1 B 1 2 1 C 0 0 0 D 3 3 3 Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 29 / 30

Berechnungskomplexität der Ablaufplanung Definition (Scheduling-Problem) SCHEDULE( ) ist das Problem, zu einem gewichteten Präzedenzgraphen einen optimalen Ablaufplan zu bestimmen und opt ( ) zu berechnen Satz (Zeitkomplexität von SCHEDULE( )) Die Zeitkomplexität von SCHEDULE( ) beträgt O( V + E ) für asynchrone Semantik Beweis. opt ( ) in O( V ) aus Vorlaufzeit berechenbar Vorlaufzeit (und damit θ free ) in O( V + E ) bestimmbar Restlaufzeit und θ late in O( V + E ) bestimmbar Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 30 / 30

Automatisches Parallelisieren Vorlesung im Wintersemester 2009/10 Eberhard Zehendner FSU Jena Thema: Ressourcenbeschränkungen Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ressourcenbeschränkungen 1 / 9

Einfachstes Ressourcenmodell Bemerkung Sind die Ressourcen beschränkt, gehen wir zunächst vereinfachend von der Verfügbarkeit von p gleichartigen Prozessoren aus Definition (Prozessoren) P = {1, 2,..., p} bezeichnet die Menge der Prozessoren Definition (Instanzbindung) Funktion γ : V P heißt Instanzbindung Interpretation Instanzbindung ordnet jedem Auftrag einen ihn ausführenden Prozessor zu Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ressourcenbeschränkungen 2 / 9

Ressourcenbedingungen für asynchrone Semantik Definition (zulässige Instanzbindung) Instanzbindung γ für gewichteten Präzedenzgraphen G = (V, E, λ) mit Ablaufplan θ ist zulässig, wenn sie folgende Bedingung erfüllt: γ(u) = γ(v) θ(u) + λ(u) θ(v) θ(v) + λ(v) θ(u) u v Interpretation der Ressourcenbedingungen Auf keinem Prozessor gleichzeitig mehr als ein Auftrag ausführbar Auftrag unteilbar: wird komplett auf einem einzigen Prozessor ausgeführt und ist nicht unterbrechbar Werden also zwei Aufträge auf demselben Prozessor ausgeführt, muss die Ausführung des einen zu Beginn der Ausführung des anderen abgeschlossen sein Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ressourcenbeschränkungen 3 / 9

Existenz von Instanzbindung zu Ablaufplan Ablaufplan und Instanzbindung nicht unabhängig Ablaufplan und Instanzbindung schränken sich gegenseitig ein Existieren Ablaufplan und passende Instanzbindung? Instanzbindung zu vorgegebenem Ablaufplan fraglich Anzahl p der Prozessoren muss bei vorgegebenem Ablaufplan θ groß genug sein, um diesen überhaupt erfüllen zu können (es reicht aber stets aus, ebensoviele Prozessoren zu haben wie Aufträge auszuführen sind) {v V : θ(v) t < θ(v) + λ(v)} > p für ein t Z verhindert mit θ verträgliche Instanzbindung auf p Prozessoren Definition (Ablaufpläne für p Prozessoren) Σ p ist Menge der Ablaufpläne, zu denen es eine Instanzbindung für p Prozessoren gibt Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ressourcenbeschränkungen 4 / 9

Existenz von Ablaufplan zu Instanzbindung Lemma (Prozessoren dürfen ungenutzt bleiben) Σ q Σ p für alle q p Satz (Ablaufplan zu vorgegebener Instanzbindung) Zu jeder Instanzbindung gibt es immer einen Ablaufplan Beweis. Sei θ seq ein θ aus Folie Ablaufplanung und zyklenfreie Graphen θ seq liegt in Σ 1 und damit in Σ p für alle p N Bemerkung Für p = 1 fallen sequenzielles, asynchrones und datenparalleles Semantikmodell zusammen Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ressourcenbeschränkungen 5 / 9

Optimale Ablaufpläne für beschränkte Ressourcen Ablaufplanung mit beschränkten Ressourcen: vorrangige Ziele Ablaufplan minimaler Gesamtausführungsdauer auf sämtlichen vorhandenen Ressourcen Ablaufplan vorgegebener Gesamtausführungsdauer auf sämtlichen vorhandenen Ressourcen Definition (minimale Ausführungsdauer auf p Prozessoren) opt (p) = min θ Σ p (θ) Definition (auf p Prozessoren optimaler Ablaufplan) Ablaufplan θ optimal auf p Prozessoren, wenn (θ) = opt (p) Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ressourcenbeschränkungen 6 / 9

Weitere Optimalitätsgesichtspunkte Lemma (je mehr Prozessoren, desto besser) opt ( ) opt (p) opt (q) opt (1) für q p Beweis. Für q p folgt aus Σ q Σ p auch opt (p) opt (q) Ablaufplanung mit beschränkten Ressourcen: nachrangige Ziele Auf p Prozessoren optimaler Ablaufplan mit minimalem Ressourcenbedarf Ablaufplan vorgegebener Gesamtausführungsdauer mit minimalem Ressourcenbedarf Evtl. auch: Ablaufplan mit minimalem Ressourcenbedarf und diesbezüglich minimaler Gesamtausführungsdauer Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ressourcenbeschränkungen 7 / 9

Minimale sequenzielle Ausführungsdauer Satz (minimale sequenzielle Ausführungsdauer) opt (1) = v V λ(v) Beweis. Schranke nicht unterschreitbar, da alle Aufträge nacheinander auszuführen Schranke erreicht von beliebigem Ablaufplan θ aus Folie Ablaufplanung und zyklenfreie Graphen Bemerkung Formel im Allgemeinen zu pessimistisch für das Pipeline-Modell Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ressourcenbeschränkungen 8 / 9

Optimale sequenzielle Ablaufpläne Satz (die optimalen sequenziellen Ablaufpläne) Die für p = 1 optimalen Ablaufpläne sind genau die in der Folie Ablaufplanung und zyklenfreie Graphen beschriebenen θ Beweis. Zulässige Sequenzen sind genau die topologischen Sortierungen Der Ablaufplan θ besitzt minimale sequenzielle Ausführungsdauer Bemerkungen Zusammenhänge i. A. komplizierter für das Pipeline-Modell Detailliertes Ressourcenmodell insbesondere für Speicherobjekte Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ressourcenbeschränkungen 9 / 9

Automatisches Parallelisieren Vorlesung im Wintersemester 2009/10 Eberhard Zehendner FSU Jena Thema: Optimieren für beschränkte Ressourcen Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Optimieren für beschränkte Ressourcen 1 / 21

Beschleunigung Zweck der Parallelisierung Parallele Ressourcen dienen der Beschleunigung des Ablaufs Definition (Beschleunigung) Zu einem gewichteten Präzedenzgraphen G = (V, E, λ) mit Ablaufplan θ heißt die Beschleunigung durch den Ablaufplan β(θ) = opt (1) (θ) Lemma β(θ) > 0 Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Optimieren für beschränkte Ressourcen 2 / 21

Beschleunigung beliebig schlecht wählbar Beschleunigung nicht zwangsläufig Parallele Ressourcen stellen Möglichkeit zur Beschleunigung dar Ablaufpläne können trotzdem beliebig schlecht gewählt werden Satz (beliebig schlechter Ablaufplan) Zu jedem h > 0 gibt es ein θ Σ 1 mit β(θ) < h Beweis. Ablaufplan θ seq geht durch Skalierung mit ganzzahligem Wert K > 1/h wieder in einen Ablaufplan θ Σ 1 über Gesamtausführungsdauer skaliert ebenfalls mit K β(θ) = opt (1) (θ) = opt (1) K opt (1) = 1 K < h Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Optimieren für beschränkte Ressourcen 3 / 21

Verlangsamung vermeidbar Verlangsamung Beschleunigung kleiner 1 (Verlangsamung) ist vermeidbar Gelegentlich sinnvoll (Minimierung der Verlustleistung, Echtzeitanforderungen) Satz (Beschleunigung 1 garantierbar) β(θ) 1 für mindestens ein θ Σ p Beweis. θ seq Σ 1 Σ p β(θ seq) = 1 Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Optimieren für beschränkte Ressourcen 4 / 21

Keine superlineare Beschleunigung möglich Satz (Beschleunigung wächst höchstens linear in p) β(θ) p für alle θ Σ p Beweis. p Prozessoren stehen genau für Zeit (θ) zur Verfügung Geleistete Arbeit durch p (θ) nach oben beschränkt Alle Aufträge auszuführen, Arbeit somit λ(v) v V opt (1) = v V λ(v) p (θ), also β(θ) p Leerlauf χ(θ, p) = p (θ) opt (1) für θ Σ p stets ganzzahlig und nichtnegativ Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Optimieren für beschränkte Ressourcen 5 / 21

Effizienz Definition (Effizienz) ε(θ, p) = β(θ)/p Effizienz eines Ablaufplans θ Σ p Effizienz ist inverses Kosten-Nutzen-Maß Effizienz ist Maß für tatsächliche Ausnutzung der Ressourcen Genügen p Prozessoren für Ablaufplan θ, werden zusätzlich für θ eingesetzte Prozessoren verschwendet, die Effizienz sinkt Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Optimieren für beschränkte Ressourcen 6 / 21

Effizienz von eingesetzten Ressourcen abhängig Satz (Effizienzmaxima) ε(θ, q) < ε(θ, p) für θ Σ p und p < q Beweis. Aus θ Σ p und p < q folgt θ Σ q β(θ) hängt nicht von p (bzw. q) ab Bemerkung ε kann nicht unabhängig von p definiert werden Definition (optimale Prozessorzahl) Minimale Prozessorzahl, die Ausführung in minimaler Zeit erlaubt: p opt = min{p : opt (p) = opt ( )} Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Optimieren für beschränkte Ressourcen 7 / 21

Allgemeine Effizienzschranken Satz (Effizienzschranken) 0 < ε(θ, p) 1 Beweis. 0 < β(θ) p für θ Σ p Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Optimieren für beschränkte Ressourcen 8 / 21

Effizienzschranken scharf? Ist Effizient 1 erreichbar? Effizienz 1 für einen Prozessor stets erreichbar Für p > 1 Ablaufpläne θ Σ p mit ε(θ, p) = 1 möglich Effizienz 1 kann für p Prozessoren nicht a priori garantiert werden Tatsächliche Schranke abhängig vom betrachteten gewichteten Präzedenzgraphen Bemerkung Durch Parallelverarbeitung können wir nicht effizienter als in sequenzieller Arbeitsweise werden höchstens schneller bei gleicher oder reduzierter Effizienz Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Optimieren für beschränkte Ressourcen 9 / 21

Fallstudie: Effiziente Instanzbindung Beispiel (Instanzbindung für Beispiel 1) Gewichteter Präzedenzgraph mit identischer Ausführungsdauer λ(v) = 1 (n = 6 auf Folie Präzedenzgraphen zu Beispiel 1 gezeigt) Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Optimieren für beschränkte Ressourcen 10 / 21

Fallstudie: Optimale Ausführungsdauer Optimale Ausführungsdauer mit unbeschränkten Ressourcen Pfad s 1,1 s 1,2 s 2,2 s 2,3... s n 1,n 1 s n 1,n s n,n Ergibt untere Schranke opt ( ) 2n 1 Schranke erreicht durch θ(s i,i ) = 2i 2, θ(s i,j ) = 2i 1 für j > i Also opt ( ) = 2n 1 Optimale sequenzielle Ausführungsdauer opt (1) = n n λ(v) = λ(s i, j ) = n (n + 1)/2 v V i=1 j=i Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Optimieren für beschränkte Ressourcen 11 / 21

Fallstudie: Mangelnde Effizienz naiver Instanzbindung Reguläre Instanzbindung Nahe liegende Instanzbindung γ(s i,i ) = 1 und γ(s i,j ) = j i für j > i Ergibt Effizienz ε(θ, n 1) = n (n + 1)/2 (n 1)(2n 1) 1 4 Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Optimieren für beschränkte Ressourcen 12 / 21

Fallstudie: Problemanalyse Gründe für unbefriedigende Effizienz (1) In jedem geraden Zeitschritt arbeitet nur ein einziger Prozessor (2) Anzahl paralleler Aufträge nimmt mit der Zeit kontinuierlich ab Lösung Beseitigung von Problem (1): Verlagerung eines Teils der Aufträge aus einem Zeitschritt in darauf folgenden Zeitschritt Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Optimieren für beschränkte Ressourcen 13 / 21

Fallstudie: Verlagerung von Aufträgen Verbesserte Effizienz bei gleicher Gesamtausführungsdauer θ(s i,i ) = 2i 2, γ(s i,i ) = 1 n + i i + 1 j : 2 θ(s i,j ) = 2i 1, γ(s i,j ) = j i n + i + 1 j n: 2 n + i θ(s i,j ) = 2i, γ(s i,j ) = j + 1 2 Es ergibt sich die verbesserte Effizienz n n(n + 1)/2 ε(θ, ) = 2 n 1 (2n 1) 2 2 Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Optimieren für beschränkte Ressourcen 14 / 21

Fallstudie: Effizienz lässt sich nicht beliebig steigern Weitere Verlagerung nur bedingt möglich Problem (2): Anzahl paralleler Aufträge nimmt mit der Zeit kontinuierlich ab Kann nicht völlig beseitigt werden: Effizienz lässt sich bei gleicher Gesamtausführungsdauer zwar noch weiter steigern, jedoch im Allgemeinen nicht bis auf 1 Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Optimieren für beschränkte Ressourcen 15 / 21

Fallstudie: Abschätzung für p Beweis. θ Σ p mit p = p opt und (θ) = opt ( ) θ(s i,i ) = 2i 2 und θ(s i,i+1 ) = 2i 1 (kritischer Pfad) sowie p n Parallel zu s i,i+1 bzw. s i+1,i+1 können nur Aufträge s l,j mit j i + 2 ausgeführt werden Wegen Datenabhängigkeiten jedoch in jedem Zeitschritt nur höchstens einer für jedes j Im ersten Zeitschritt nur ein Prozessor aktiv p 1 Es folgt χ(θ, p) p 1 + 2k = p 2 1 k=1 Also p 2 1 χ(θ, p) = p (θ) opt (1) = p(2n 1) n(n + 1)/2 Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Optimieren für beschränkte Ressourcen 16 / 21

Fallstudie: Abschätzung der Effizienz Asymptotische Effizienz Lösen der quadratischen Ungleichung für p: p (2n 1 2n 2 6n + 5)/2 ε(θ, p opt ) = opt (1) p opt opt ( ) n(n + 1)/2 (2n 1)(2n 1 2n 2 6n + 5)/2 p bewegt sich asymptotisch von oben gegen n(2 2)/2 0.293n Effizienz strebt asymptotisch gegen (2 + 2)/4 0.85 Schranke lässt sich annähernd erreichen Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Optimieren für beschränkte Ressourcen 17 / 21

Komplexitätsfragen der Ablaufplanung Definition (Entscheidungsproblem DEC(p)) Gegeben ein gewichteter Präzedenzgraph, p Prozessoren und eine Zeitschranke T N. Existiert ein Ablaufplan θ Σ p mit (θ) T? Definition (Optimierungsproblem SCHEDULE(p)) Bestimme zu einem gewichteten Präzedenzgraphen einen für p Prozessoren optimalen Ablaufplan und berechne opt (p) Definition (Optimierungsproblem MINALLOC) Bestimme zu einem gewichteten Präzedenzgraphen die minimale Prozessorzahl p opt, die noch eine Ausführung in minimaler Zeit erlaubt: p opt = min{p : opt (p) = opt ( )} Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Optimieren für beschränkte Ressourcen 18 / 21

Ablaufplanung ist NP-schwer Satz DEC(p) ist NP-vollständig Beweis. DEC(p) NP: Ablaufplan in polynomialer Zeit überprüfbar DEC(p) NP-schwer: polynomiale Reduktion eines NP-schweren Problems (z. B. 3SAT, 3-PARTITION, CLIQUE) auf DEC(p) Folgerung. SCHEDULE(p) ist NP-schwer Satz MINALLOC ist NP-schwer Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Optimieren für beschränkte Ressourcen 19 / 21

Praktische Konsequenzen für die Ablaufplanung Verzicht auf optimale Lösungen Mit polynomialem Aufwand wohl kein optimaler Ablaufplan für p Prozessoren bestimmbar Ablaufplanung mit beschränkten Ressourcen in der Praxis mittels Heuristiken, für die gewisse Gütegarantien gelten Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Optimieren für beschränkte Ressourcen 20 / 21

Weiterführende Literatur M. R. Garey, D. S. Johnson: Computers and Intractability: A Guide to the Theory of NP-Completeness. Freeman, 22th printing, 2000. C. H. Papadimitriou, K. Steiglitz: Combinatorial Optimization: Algorithms and Complexity. Prentice-Hall, 1982. A. Darte, Y. Robert, F. Vivien: Scheduling and Automatic Parallelization. Birkhäuser, 2000. Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Optimieren für beschränkte Ressourcen 21 / 21

Automatisches Parallelisieren Vorlesung im Wintersemester 2009/10 Eberhard Zehendner FSU Jena Thema: Listenbasierte Ablaufplanung Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Listenbasierte Ablaufplanung 1 / 14

Heuristiken: Listenbasierte Ablaufpläne Definition (bereiter Auftrag) Auftrag v zum Zeitpunkt t N bereit, wenn seine Ausführung nicht vor t beginnt, aber seine Vorgänger dann bereits abgearbeitet sind: v BEREIT(θ, t) θ(v) t θ(u) + λ(u) t u PRED(v) Greedy-Strategie Freier Prozessor erhält sofort bereiten Auftrag (sofern vorhanden) Führt zu listenbasierten Ablaufplänen: min(q, r) neue Aufträge gestartet, wenn q Prozessoren frei und r Aufträge bereit Für r > q > 0 Auswahl aus bereiten Aufträgen nötig (erfordert Spezifikation eines Auswahlverfahrens) Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Listenbasierte Ablaufplanung 2 / 14