Automatisches Parallelisieren

Größe: px
Ab Seite anzeigen:

Download "Automatisches Parallelisieren"

Transkript

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

2 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

3 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

4 ... 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

5 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

6 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

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

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

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

17 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

18 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

19 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

20 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

21 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

22 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

23 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

24 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

25 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

26 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

27 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

28 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

29 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

30 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

31 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

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

33 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

34 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

35 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

36 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

37 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

38 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

39 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

40 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

41 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

42 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

43 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

44 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

45 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

46 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

47 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

48 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

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

50 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

51 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

52 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

53 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

54 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

55 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

56 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

57 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

58 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

59 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

60 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

61 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

62 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

63 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

64 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

65 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

66 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

67 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

68 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

69 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 B C D Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Ablaufplanung 29 / 30

70 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

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

72 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

73 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

74 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

75 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

76 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

77 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

78 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

79 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

80 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

81 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

82 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

83 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

84 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

85 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

86 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

87 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

88 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

89 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

90 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

91 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

92 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

93 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 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

94 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

95 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

96 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)/ n Effizienz strebt asymptotisch gegen (2 + 2)/ Schranke lässt sich annähernd erreichen Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Optimieren für beschränkte Ressourcen 17 / 21

97 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

98 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

99 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

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

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

102 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

Automatisches Parallelisieren

Automatisches Parallelisieren Automatisches Parallelisieren Vorlesung im Wintersemester 2010/11 Eberhard Zehendner FSU Jena Thema: Ablaufplanung mit unbeschränkten Ressourcen Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren

Mehr

Automatisches Parallelisieren

Automatisches Parallelisieren Automatisches Parallelisieren Vorlesung im Wintersemester 2010/11 Eberhard Zehendner FSU Jena Thema: Datenabhängigkeitsanalyse Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Datenabhängigkeitsanalyse

Mehr

Automatisches Parallelisieren

Automatisches Parallelisieren Automatisches Parallelisieren Vorlesung im Wintersemester 2010/11 Eberhard Zehendner FSU Jena Notation (Stand 31.10.2010) Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Notation 1 / 26 Programmnotation

Mehr

Automatisches Parallelisieren

Automatisches Parallelisieren Automatisches Parallelisieren Vorlesung im Wintersemester 2009/10 Eberhard Zehendner FSU Jena Notation (Stand 29.10.2009) Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Notation 1 / 26 Programmnotation

Mehr

2.3 View Serialisierbarkeit

2.3 View Serialisierbarkeit 2.3 View Serialisierbarkeit Das Problem, dass tote Aktionen bei FSSR ausgeklammert werden, lässt sich beheben, wenn man die Gleichheit der Reads-From-Relation eines gegebenen Schedules mit einem seriellen

Mehr

Compiler für f r Eingebettete Systeme (CfES)

Compiler für f r Eingebettete Systeme (CfES) Compiler für f r Eingebettete Systeme (CfES) Sommersemester 2009 Dr. Heiko Falk Technische Universität Dortmund Lehrstuhl Informatik 12 Entwurfsautomatisierung für Eingebettete Systeme Kapitel 9 Ausblick

Mehr

Beispiele von Branch Delay Slot Schedules

Beispiele von Branch Delay Slot Schedules Beispiele von Branch Delay Slot Schedules Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 97 Weniger

Mehr

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

IHS2 Seminar. Jorge Meza Zusebau R2082, Tel: -4128 Jorge Meza Zusebau R2082, Tel: -4128 Prof. Dr.-Ing. habil. Andreas Mitschele-Thiel Integrated HW/SW Systems Group 14. Januar 2014 Self-Organization 14 January 2014 1 Nächster Termin Das letzte findet am

Mehr

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

Statt Turingmaschinen anzugeben, genügt die Angabe eines C++ Programms oder die Angabe eines Pseudocodes. Turingmaschinen Wir haben Turingmaschinen eingeführt. Bis auf einen polynomiellen Anstieg der Rechenzeit haben Turingmaschinen die Rechenkraft von parallelen Supercomputern! Statt Turingmaschinen anzugeben,

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 8 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Codegenerierung für Basisblöcke (1)

Codegenerierung für Basisblöcke (1) Codegenerierung für Basisblöcke (1) Basisblock (Grundblock): Teil des Kontrollflussgraphen, der keine Verzweigungen (Sprünge) oder Vereinigungen (Label) enthält keine Zyklen: bessere Optimierung möglich

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 20. November 2014 INSTITUT FÜR THEORETISCHE 0 KIT 20.11.2014 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der

Mehr

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

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 Massivparallele Modelle und Architekturen Wintersemester 2010/2011 Lösungsvorschlag 1. Übung 1. Aufgabe: Leistungsbewertung paralleler Systeme Betrachtet werden soll der Odd-Even-Sort-Algorithmus mit n

Mehr

Parallele Programmiermodelle

Parallele Programmiermodelle Parallele Programmiermodelle ProSeminar: Parallele Programmierung Semester: WS 2012/2013 Dozentin: Margarita Esponda Einleitung - Kurzer Rückblick Flynn'sche Klassifikationsschemata Unterteilung nach Speicherorganissation

Mehr

Vortrag 20: Kurze Vektoren in Gittern

Vortrag 20: Kurze Vektoren in Gittern Seminar: Wie genau ist ungefähr Vortrag 20: Kurze Vektoren in Gittern Kerstin Bauer Sommerakademie Görlitz, 2007 Definition und Problembeschreibung Definition: Gitter Seien b 1,,b k Q n. Dann heißt die

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil II Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University of Leipzig 07.

Mehr

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

Der LLL-Algorithmus. Konrad Schade. January 19, 2007 January 19, 2007 Gliederung Allgemeines Ziel Vor- und Nachteil des LLL-Algorithmuses Gliederung Allgemeines Ziel Vor- und Nachteil des LLL-Algorithmuses enthaelt in seinem Namen auch die Namen seiner Erfinder,

Mehr

3 Elementare Umformung von linearen Gleichungssystemen und Matrizen

3 Elementare Umformung von linearen Gleichungssystemen und Matrizen 3 Elementare Umformung von linearen Gleichungssystemen und Matrizen Beispiel 1: Betrachte das Gleichungssystem x 1 + x 2 + x 3 = 2 2x 1 + 4x 2 + 3x 3 = 1 3x 1 x 2 + 4x 3 = 7 Wir formen das GLS so lange

Mehr

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

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme Theoretische Informatik Exkurs Rainer Schrader Exkurs: Komplexität von n Institut für Informatik 13. Mai 2009 1 / 34 2 / 34 Gliederung Entscheidungs- und Approximationen und Gütegarantien zwei Greedy-Strategien

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 16.11.2010 INSTITUT FÜR THEORETISCHE INFORMATIK 0 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Konfliktgraph. Satz und Definition

Konfliktgraph. Satz und Definition 9. Transaktionsverwaltung 9.2. Mehrbenutzerkontrolle Seite 1 Konfliktgraph Der Konfliktgraph von S ist ein gerichteter Graph KG(S) = (V, E), wobei V die Menge aller Transaktionen in S und E die Menge der

Mehr

Effiziente Algorithmen (SS2015)

Effiziente Algorithmen (SS2015) Effiziente Algorithmen (SS205) Kapitel 5 Approximation II Walter Unger Lehrstuhl für Informatik 2.06.205 07:59 5 Inhaltsverzeichnis < > Walter Unger 5.7.205 :3 SS205 Z Inhalt I Set Cover Einleitung Approximation

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Dr. Werner Meixner, Dr. Alexander Krauss Sommersemester 2010 Lösungsblatt 11 15. Juli 2010 Einführung in die Theoretische

Mehr

Algorithmische Methoden für schwere Optimierungsprobleme

Algorithmische Methoden für schwere Optimierungsprobleme Algorithmische Methoden für schwere Optimierungsprobleme Prof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund

Mehr

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

Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III Text: Hinnerk van Bruinehsen - Grafiken: Jens Fischer powered by SDS.mint SoSe 2011 1 Teil

Mehr

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

X Inhaltsverzeichnis 2.7 StrukturorientierteModelle Komponenten-Verbindungsdiagramm (CCD) HeterogeneModelle Kontr 1 Einleitung... 1 1.1 Motivation... 1 1.2 Entwurfsmethodik..... 7 1.2.1 Erfassenundsimulieren... 7 1.2.2 Beschreibenundsynthetisieren... 8 1.2.3 Spezifizieren,explorierenundverfeinern... 9 1.3 Abstraktion

Mehr

Kapitel 1 Parallele Modelle Wie rechnet man parallel?

Kapitel 1 Parallele Modelle Wie rechnet man parallel? PRAM- PRAM- DAG- R UND R Coles und Kapitel 1 Wie rechnet man parallel? Vorlesung Theorie Paralleler und Verteilter Systeme vom 11. April 2008 der Das DAG- Das PRAM- Das werkmodell Institut für Theoretische

Mehr

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

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele. 1. Einführung in die Informatik Inhalt 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele Peter Sobe 1 Einführende Beispiele 2. Algorithmen Täglich werden Verarbeitungsvorschriften

Mehr

Konzepte der parallelen Programmierung

Konzepte der parallelen Programmierung Fakultät Informatik, Institut für Technische Informatik, Professur Rechnerarchitektur Konzepte der parallelen Programmierung Parallele Programmiermodelle Nöthnitzer Straße 46 Raum 1029 Tel. +49 351-463

Mehr

Algorithmen zur Visualisierung von Graphen Lagenlayouts

Algorithmen zur Visualisierung von Graphen Lagenlayouts Algorithmen zur Visualisierung von Graphen Lagenlayouts Marcus Krug Institut für Theoretische Informatik 25.06.2009 1/ 41 E-Mail-Graph der Fakultät für Informatik 2/ 41 E-Mail-Graph der Fakultät für Informatik

Mehr

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

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung Gliederung der Vorlesung. Fallstudie Bipartite Graphen. Grundbegriffe 3. Elementare Graphalgorithmen und Anwendungen 4. Minimal spannende Bäume 5. Kürzeste Pfade 6. Traveling Salesman Problem 7. Flüsse

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 7. Dezember 2017 INSTITUT FÜR THEORETISCHE 0 07.12.2017 Dorothea Wagner - Theoretische Grundlagen der Informatik INSTITUT FÜR THEORETISCHE KIT Die Forschungsuniversität

Mehr

Informatik III - WS07/08

Informatik III - WS07/08 Informatik III - WS07/08 Kapitel 4 1 Informatik III - WS07/08 Prof. Dr. Dorothea Wagner dwagner@ira.uka.de Kapitel 4 : Komplexitätsklassen Informatik III - WS07/08 Kapitel 4 2 Sprachen, Probleme, Zeitkomplexität

Mehr

2.3 Basis und Dimension

2.3 Basis und Dimension 23 Basis und Dimension Erinnerung Gegeben ein K-Vektorraum V, ein Vektorensystem x,, x n in V Eine Linearkombination in den x i ist ein Vektor der Form λ x + + λ n x n mit λ i K Die λ i heißen Koeffizienten

Mehr

Systeme 1: Architektur

Systeme 1: Architektur slide 1 Vorlesung Systeme 1: Architektur Prof. Dr. Ulrich Ultes-Nitsche Forschungsgruppe Departement für Informatik Universität Freiburg slide 2 Prüfung 18. Februar 2004 8h00-11h40 13h00-18h20 20 Minuten

Mehr

Theoretische Informatik II

Theoretische Informatik II Theoretische Informatik II Einheit 5.2 Das P N P Problem 1. Nichtdeterministische Lösbarkeit 2. Sind N P-Probleme handhabbar? 3. N P-Vollständigkeit Bei vielen schweren Problemen ist Erfolg leicht zu testen

Mehr

Datenbanken: Ablaufpläne und Serialisierbarkeit

Datenbanken: Ablaufpläne und Serialisierbarkeit Theoretische Konzepte zur Abarbeitung parallel arbeitender Transaktionen Definition: (Ablaufplan, Schedule) Ein Ablaufplan S ist die verschränkte Anordnung bzw. Ausführung der Einzeloperationen einer Menge

Mehr

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

8 Der Kompaktheitssatz und der Satz von Löwenheim und Skolem 8 Der Kompaktheitssatz und der Satz von Löwenheim und Skolem 8.1 Der Kompaktheitssatz Kompaktheitssatz Endlichkeitssatz Der Kompaktheitssatz ist auch unter dem Namen Endlichkeitssatz bekannt. Unter Verwendung

Mehr

Allgemeine Lösung mittels Hazard Detection Unit

Allgemeine Lösung mittels Hazard Detection Unit Allgemeine Lösung mittels Hazard Detection Unit Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 83

Mehr

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

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

Mehr

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

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 Massivparallele Modelle und Architekturen Wintersemester 13/14 Lösungsvorschlag 1. Übung 1. Aufgabe: Leistungsbewertung paralleler Systeme Betrachtet werden soll der Odd-Even-Sort-Algorithmus mit n Eingangswerten

Mehr

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

Graphentheorie. Kürzeste Wege. Kürzeste Wege. Kürzeste Wege. Rainer Schrader. 25. Oktober 2007 Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 25. Oktober 2007 1 / 20 2 / 20 Wir werden Optimierungsprobleme vom folgenden Typ betrachten: gegeben eine Menge X und eine Funktion

Mehr

Reduktion. 2.1 Abstrakte Reduktion

Reduktion. 2.1 Abstrakte Reduktion 2 Reduktion In diesem Kapitel studieren wir abstrakte Eigenschaften von Regeln. In den ersten beiden Abschnitten betrachten wir nicht einmal die Regeln selbst, sondern nur abstrakte Reduktionssysteme,

Mehr

ADS 2: Algorithmen und Datenstrukturen

ADS 2: Algorithmen und Datenstrukturen ADS 2: Algorithmen und Datenstrukturen Teil 2 Prof. Peter F. Stadler & Sebastian Will Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität Leipzig 16. April

Mehr

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

Der LLL - Algorithmus. Seminar ganzzahlige Optimierung Wintersemester 2006/2007 Der LLL - Algorithmus Seminar ganzzahlige Optimierung Wintersemester 2006/2007 Autor: Konrad Schade Betreuer: Prof. Dr. J. Rambau 1 Einführung 1.1 Motivation In dieser Arbeit soll die Verwendung des LLL-Algotithmuses

Mehr

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

Graphentheorie. Perfekte Graphen. Perfekte Graphen. Perfekte Graphen. Rainer Schrader. 22. Januar 2008 Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 22. Januar 2008 1 / 47 2 / 47 eine Clique in G ist ein induzierter vollständiger Teilgraph Gliederung α- und χ-perfektheit Replikation

Mehr

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

Einführung in Berechenbarkeit, Komplexität und Formale Sprachen Einführung in Berechenbarkeit, Komplexität und Formale Sprachen V17, 10.12.09 Willkommen zur Vorlesung Einführung in Berechenbarkeit, Komplexität und Formale Sprachen Friedhelm Meyer auf der Heide 1 Rückblick:

Mehr

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

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck. 10 Matching-Probleme 10 Matching-Probleme 10.1 Definition von Matching-Probleme Definition 21 [2-dimensionales Matching] Sei G = (V, E) ein ungerichteter Graph und E E. E ist ein Matching, wenn für alle Kantenpaare e 1, e

Mehr

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

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2017/2018 2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2017/2018 Hier Aufkleber mit Name und Matrikelnummer anbringen Vorname: Nachname: Matrikelnummer: Beachten Sie: Bringen Sie

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Effiziente Algorithmen Lösen NP-vollständiger Probleme 320 Approximationsalgorithmen In polynomieller Zeit lässen sich nicht exakte Lösungen von NP-harten Problemen berechnen. Approximationsalgorithmen

Mehr

5 Sortieren in eindimensionalen Zellularautomaten

5 Sortieren in eindimensionalen Zellularautomaten 5 Sortieren in eindimensionalen Zellularautomaten 5.1 Für alle x A und w A bezeichne im folgenden N x (w) die Anzahl der Vorkommen des Symboles x in dem Wort w. 5.2 Problem. (Eindimensionales Sortieren

Mehr

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Programmtransformationen: Vom PRAM Algorithmus zum MPI Programm Prof. Dr. Walter F. Tichy Dr. Victor Pankratius Ali Jannesari Modell und

Mehr

Übung 2 Algorithmen II

Übung 2 Algorithmen II Yaroslav Akhremtsev, Demian Hespe yaroslav.akhremtsev@kit.edu, hespe@kit.edu Mit Folien von Michael Axtmann (teilweise) http://algo2.iti.kit.edu/algorithmenii_ws17.php - 0 Akhremtsev, Hespe: KIT Universität

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 6 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 16. Mai 2018 [Letzte Aktualisierung: 18/05/2018,

Mehr

Kapitel 5 Mehrversionen-CC. MVCC: Annahmen & Eigenschaften

Kapitel 5 Mehrversionen-CC. MVCC: Annahmen & Eigenschaften Kapitel 5 Mehrversionen-CC Bisher sind wir immer von der Grundannahme ausgegangen, dass jedes Datenobjekt x nur in einer Version vorliegt. Die Konsequenz daraus war, dass durch jedes Schreiben der Wert

Mehr

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

Näherungsalgorithmen (Approximationsalgorithmen) WiSe 2008/09 in Trier. Henning Fernau Universität Trier Näherungsalgorithmen (Approximationsalgorithmen) WiSe 2008/09 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Näherungsalgorithmen Gesamtübersicht Organisatorisches Einführung / Motivation

Mehr

KESS - Die Komplexität evolutionär stabiler Strategien

KESS - Die Komplexität evolutionär stabiler Strategien KESS - Die Komplexität evolutionär stabiler Strategien Andreas Lochbihler Universität Karlsruhe (TH) 0..008 K. Etessami, A. Lochbihler: The computational complexity of evolutionarily stable strategies.

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Übung am 16.12.2010 INSTITUT FÜR THEORETISCHE INFORMATIK 0 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 24.01.2013 Online Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum

Mehr

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

bekannt: Eliminationsverfahren von Gauß Verfahren führt zu einer Zerlegung der Koeffizientenmatrix: A = LR A = LR LR-Zerlegung bekannt: Eliminationsverfahren von Gauß Verfahren führt zu einer Zerlegung der Koeffizientenmatrix: A = LR Definition 2.17 Unter einer LR-Zerlegung einer Matrix A R n n verstehen wir eine

Mehr

Klammersprache Definiere

Klammersprache Definiere Klammersprache w=w 1...w n {(,)}* heißt korrekt geklammert, falls die Anzahl ( ist gleich der Anzahl ). in jedem Anfangsstück w 1,...,w i (i n) ist die Anzahl ( nicht kleiner als die Anzahl ). Definiere

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 4 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 24. April 2019 [Letzte Aktualisierung: 24/04/2019,

Mehr

Kapitel 5. Parallelverarbeitung. Formen der Parallelität

Kapitel 5. Parallelverarbeitung. Formen der Parallelität Kapitel 5 Parallelverarbeitung é Formen der Parallelität é Klassifikation von parallelen Rechnerarchitekturen é Exkurs über Verbindungsstrukturen Bernd Becker Technische Informatik I Formen der Parallelität

Mehr

Einführung in das Seminar Algorithmentechnik

Einführung in das Seminar Algorithmentechnik Einführung in das Seminar Algorithmentechnik 10. Mai 2012 Henning Meyerhenke, Roland Glantz 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Roland undglantz: nationales Einführung Forschungszentrum

Mehr

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

Übung 2. Letzte Änderung: 19. Mai 2017 Übung 2 Letzte Änderung: 19 Mai 2017 Zusammenfassung Übung 1 Zum Beispiel CPI ( ), Ausführungszeit, MIPS-Rate MIPS ist schlecht als Vergleichsmaß, weil zu sehr abhängig von Compiler und Befehlsarchitektur

Mehr

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

Kapitel 1.4. Exkurs: Entscheidbarkeit und Komplexität. Mathematische Logik (WS 2012/3) K. 1.4: Entscheidbarkeit und Komplexität 1/10 Kapitel 1.4 Exkurs: Entscheidbarkeit und Komplexität Mathematische Logik (WS 2012/3) K. 1.4: Entscheidbarkeit und Komplexität 1/10 Algorithmen Ein Algorithmus oder eine Rechenvorschrift ist ein effektives

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Kürzeste Wege Maike Buchin 4. und 6.7.2017 Einführung Motivation: Bestimmung von kürzesten Wegen ist in vielen Anwendungen, z.b. Routenplanung, ein wichtiges Problem. Allgemeine

Mehr

Synthese Eingebetteter Systeme. 12 Synthese: Bereitstellung (Allocation)

Synthese Eingebetteter Systeme. 12 Synthese: Bereitstellung (Allocation) 12 Synthese Eingebetteter Systeme Wintersemester 2012/13 12 Synthese: Bereitstellung (Allocation) 2012/12/10 Michael Engel Informatik 12 TU Dortmund Synthese: Bereitstellung (Allocation) Bereitstellung

Mehr

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

Access-Modell. A4. Im Operandenteil von Anweisungen vorkommende Objekte seien unstrukturiert und stehen in keinerlei Beziehung zueinander. Access-Modell Das Access-Modell beruht auf folgenden vereinfachenden Annahmen: A1. Im Operationsteil einer Anweisung sei nur der Operator Access erlaubt. Die beabsichtigte Semantik ist, daß die Daten aus

Mehr

Rückblick auf die letzte Vorlesung. Bemerkung

Rückblick auf die letzte Vorlesung. Bemerkung Bemerkung 1) Die Bedingung grad f (x 0 ) = 0 T definiert gewöhnlich ein nichtlineares Gleichungssystem zur Berechnung von x = x 0, wobei n Gleichungen für n Unbekannte gegeben sind. 2) Die Punkte x 0 D

Mehr

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

Vorlesung 3: Graphenalgorithmen. Markus Püschel David Steurer Peter Widmayer. PDF download goo.gl/ym3spq Vorlesung 3: Graphenalgorithmen Markus Püschel David Steurer Peter Widmayer PDF download goo.gl/ym3spq Algorithmen und Datenstrukturen, Herbstsemester 2017, ETH Zürich Gerichtete Graphen und Abhängigkeiten

Mehr

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

Einführung (1/3) Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (1) Vorlesungen zur Komplexitätstheorie. Einführung (1/3) 3 Wir verfolgen nun das Ziel, Komplexitätsklassen mit Hilfe von charakteristischen Problemen zu beschreiben und zu strukturieren Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit

Mehr

Informatik I: Einführung in die Programmierung

Informatik I: Einführung in die Programmierung Informatik I: Einführung in die Programmierung 30. Ausblick Albert-Ludwigs-Universität Freiburg Bernhard Nebel 13.02.2016 1 13.02.2016 B. Nebel Info I 3 / 17 Programmieren jedenfalls ein bisschen Python-Programme

Mehr

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

UNABHÄNGIGER LASTEN. Vorlesung 9 BALANCIERUNG DYNAMISCHER. Graphenalgorithmen und lineare Algebra Hand in Hand Vorlesung 9 BALANCIERUNG DYNAMISCHER UNABHÄNGIGER LASTEN 266 Lastbalancierung Motivation! Ein paralleles System besteht aus! verschiedenen Recheneinheiten,! die miteinander kommunizieren können! Warum

Mehr

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

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden! Albert-Ludwigs-Universität Institut für Informatik Prof. Dr. F. Kuhn Informatik II: Algorithmen & Datenstrukturen Montag, 29. August, 2014, 14:00 17:00 Name:...........................................................

Mehr

. 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:

. 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: Laufzeit von Quicksort im Mittel. Wir wollen die erwartete Effizienz von Quicksort ermitteln. Wir nehmen an, die Wahrscheinlichkeit, dass das gewählte Pivot-Element a j das k-t kleinste Element der Folge

Mehr

Grundlagen der theoretischen Informatik

Grundlagen der theoretischen Informatik Grundlagen der theoretischen Informatik Kurt Sieber Fakultät IV, Department ETI Universität Siegen SS 2013 Vorlesung vom 30.04.2013 Grenzen regulärer Sprachen Wie beweist man, dass eine Sprache nicht regulär

Mehr

Rechnerarchitektur (RA)

Rechnerarchitektur (RA) 2 Rechnerarchitektur (RA) Sommersemester 27 Pipelines Jian-Jia Chen Informatik 2 http://ls2-www.cs.tu.de/daes/ 27/5/3 Diese Folien enthalten Graphiken mit Nutzungseinschränkungen. Das Kopieren der Graphiken

Mehr

Rechnerarchitektur (RA)

Rechnerarchitektur (RA) 2 Rechnerarchitektur (RA) Sommersemester 26 Pipelines Jian-Jia Chen Informatik 2 http://ls2-www.cs.tu.de/daes/ 26/5/25 Diese Folien enthalten Graphiken mit Nutzungseinschränkungen. Das Kopieren der Graphiken

Mehr

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

Aufgabe Mögliche Punkte Erreichte Punkte a b c d Σ a b c d Σ x1 13 Universität Karlsruhe Theoretische Informatik Fakultät für Informatik WS 2003/04 ILKD Prof. Dr. D. Wagner 14. April 2004 2. Klausur zur Vorlesung Informatik III Wintersemester 2003/2004 Hier Aufkleber

Mehr

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

Technische Grundlagen der Informatik 2 SS Einleitung. R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt E-1 E-1 Technische Grundlagen der Informatik 2 SS 2009 Einleitung R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt Lernziel E-2 Verstehen lernen, wie ein Rechner auf der Mikroarchitektur-Ebene

Mehr

1 Der Simplex Algorithmus I

1 Der Simplex Algorithmus I 1 Nicoletta Andri 1 Der Simplex Algorithmus I 1.1 Einführungsbeispiel In einer Papiermühle wird aus Altpapier und anderen Vorstoffen feines und grobes Papier hergestellt. Der Erlös pro Tonne feines Papier

Mehr

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

Technische Universität München Zentrum Mathematik. Übungsblatt 7 Technische Universität München Zentrum Mathematik Mathematik (Elektrotechnik) Prof. Dr. Anusch Taraz Dr. Michael Ritter Übungsblatt 7 Hausaufgaben Aufgabe 7. Für n N ist die Matrix-Exponentialfunktion

Mehr

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

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 7. Coxeter Graphen Um die endlichen Spiegelungsgruppen zu klassifizieren, wollen wir ihnen nun Graphen zuordnen, die die Gruppen bis auf Isomorphie eindeutig bestimmen. Im Folgenden sei wie vorher Π Φ

Mehr

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

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck Lemma 15 KLP 1 ist genau dann lösbar, wenn das dazugehörige LP KLP 2 eine Lösung mit dem Wert Z = 0 besitzt. Ist Z = 0 für x 0, x 0, dann ist x eine zulässige Lösung von KLP 1. Beweis von Lemma 15: Nach

Mehr

Dualitätssätze der linearen Optimierung

Dualitätssätze der linearen Optimierung Kapitel 9 Dualitätssätze der linearen Optimierung Sei z = c T x min! Ax = b 9.1 x 0 mit c, x R n, b R m, A R m n ein lineares Programm. Definition 9.1 Duales lineares Programm. Das lineare Programm z =

Mehr

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

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Jakob Vogel Computer-Aided Medical Procedures Technische Universität München Komplexität von Programmen Laufzeit kann näherungsweise

Mehr

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

Anordnungstechniken für konvektionsdominante Probleme im Ê 3. Dimensionsunabhängige Verfahren. Algorithmen für planare Graphen. Numerische Beispiele Anordnungstechniken für konvektionsdominante Probleme im Ê 3 Inhalt: Einführung Dimensionsunabhängige Verfahren Algorithmen für planare Graphen Anordnungen im Ê 3 Numerische Beispiele 2 Einführung betrachtet

Mehr

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

C-to-CUDA-Compiler. Johannes Kölsch. October 29, 2012 October 29, 2012 Inhaltsverzeichnis 1 2 3 4 5 6 Motivation Motivation CUDA bietet extreme Leistung für parallelisierbare Programme Kompliziert zu programmieren, da multi-level parallel und explizit verwalteter

Mehr

Optimierung. Vorlesung 08

Optimierung. Vorlesung 08 Optimierung Vorlesung 08 Heute Dualität Ganzzahligkeit Optimierung der Vorlesung durch Evaluierung 2 Das duale LP Das primale LP Maximiere c T x unter Ax b, x R d 0. wird zu dem dualen LP Minimiere b T

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Sascha Böhme, Lars Noschinski Sommersemester 2011 Lösungsblatt 9 25. Juli 2011 Einführung in die Theoretische Informatik

Mehr

Kapitel 3: Sortierverfahren Gliederung

Kapitel 3: Sortierverfahren Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

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

Informatik I. Informatik I Was haben wir gelernt? 28.2 Algorithmusbegriff Was geht nicht? 28.1 Was haben wir gelernt? Informatik I 14.02.2014 28. Ausblick Informatik I 28. Ausblick Bernhard Nebel Albert-Ludwigs-Universität Freiburg 28.1 28.2 28.3 Was geht nicht? 14.02.2014 Bernhard Nebel (Universität Freiburg) Informatik

Mehr

Algorithmen und Datenstrukturen 2-1. Seminar -

Algorithmen und Datenstrukturen 2-1. Seminar - Algorithmen und Datenstrukturen 2-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Sommersemster 2010 Outline 1. Übungsserie: 3 Aufgaben, insgesamt 30 28 Punkte A1 Spannbäume (10 8

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 2011 Übungsblatt 1 16. September 2011 Grundlagen: Algorithmen und

Mehr

2.4 Verallgemeinerte Ungleichungen

2.4 Verallgemeinerte Ungleichungen 2.4 Verallgemeinerte Ungleichungen 2.4.1 Eigentliche Kegel und verallgemeinerte Ungleichungen Ein Kegel K R heißt eigentlicher Kegel, wenn er die folgenden Bedingungen erfüllt: K ist konvex K ist abgeschlossen

Mehr

2.4 Starke Zusammenhangskomponenten in Digraphen

2.4 Starke Zusammenhangskomponenten in Digraphen Starke Zusammenhangskomponenten Einleitung 2.4 Starke Zusammenhangskomponenten in Digraphen Definition 2.4.1 Zwei Knoten v und w in einem Digraphen G heißen äquivalent, wenn v w und w v gilt. Notation:

Mehr

verschiedenen Recheneinheiten, die miteinander kommunizieren können

verschiedenen Recheneinheiten, die miteinander kommunizieren können Vorlesung 9 BALANCIERUNG DYNAMISCHER UNABHÄNGIGER LASTEN 293 Lastbalancierung Motivation Ein paralleles System besteht aus verschiedenen Recheneinheiten, die miteinander kommunizieren können Warum parallel

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphen (1) Darstellung Traversierung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 441 Generalisierung von Bäumen Verallgemeinerung (von Listen zu Graphen)

Mehr