185.A64 Übersetzer für Parallele Systeme
Diese Lehrveranstaltung ist in allen zugeordneten Curricula Teil der STEOP.
Diese Lehrveranstaltung ist in mindestens einem zugeordneten Curriculum Teil der STEOP.

2013W, VU, 2.0h, 3.0EC, wird geblockt abgehalten

Merkmale

  • Semesterwochenstunden: 2.0
  • ECTS: 3.0
  • Typ: VU Vorlesung mit Übung

Ziele der Lehrveranstaltung

Computerprogramme weisen einen bestimmten Grad an Parallelismus auf, wodurch auf paralleler Hardware mehrere Operationen gleichzeitig ausgeführt werden können - in den derzeit stärksten Supercomputern rechnen Millionen von Prozessorkernen. Parallelismus kann implizit im Programm enthalten (z. B. in einer Schleife mit voneinander unabhängigen Iterationen) oder explizit vom Programmierer (mittels paralleler Sprachkonstrukte) angegeben sein.

Wie kann ein Übersetzer impliziten Parallelismus erkennen und - wie auch explizit spezifizierten - auf eine parallele Zielarchitektur abbilden, so dass deren Ressourcen optimal genutzt werden? Diese Fragestellung steht im Zentrum der Lehrveranstaltung. Sie vermittelt Übersetzungs- und Optimierungstechniken, die effizienten Code für Parallelrechner liefern.

Absolventinnen und Absolventen verstehen das fundamentale Konzept der Datenabhängigkeit und dessen Bedeutung für die Parallelisierung sequentieller Programme. Sie können
** Programmtransformationen zur Elimination von Abhängigkeiten und zur Verbesserung von Lokalität angeben und einordnen,
** grundlegende Vektorisierungs- und Parallelisierungsmethoden beschreiben und anwenden,
** das polyhedrale Modell zur Darstellung von Schleifen erklären und zur automatischen Parallelisierung einsetzen,
** Analysetechniken für parallele Programme aufzeigen und
** Übersetzungsstrategien für verbreitete parallele Sprachen darlegen.

Inhalt der Lehrveranstaltung

Überblick über Parallele Systeme, Datenabhängigkeit, Abhängigkeitsanalyse und -tests, Programmtransformationen, Schleifentransformationen, Kontrollabhängigkeit und If-Konversion, Vektorisierung, Parallelisierung für Systeme mit gemeinsamem (do-all, do-across Schleifen) und verteiltem Speicher, Pipelining, Lokalitätsoptimierungen, Data Reuse, unimodulare und affine Transformationen, Parallelisierung im polyhedralen Modell, Zwischendarstellungen, Programmanalysen, Aspekte der Übersetzung von datenparallelen Sprachen (HPF), OpenMP, Cilk, PGAS-Sprachen (Datenaufteilung, Kommunikationsoptimierung, Iteration Scheduling, Laufzeitumgebung) und für Accelerators (GPUs); Ausblick: Autotuning, Laufzeitparallelisierung.

Weitere Informationen

ECTS Breakdown (3.0 ECTS <=> 75 Std.):
** Vorlesung inkl. Nach- und Vorbereitung: 25 Std.
** Ausarbeitung u. Präsentation der Übungs-/Programmieraufgaben: 40 Std.
** Prüfungsvorbereitung und Prüfung: 10 Std.

Vortragende Personen

Institut

LVA Termine

TagZeitDatumOrtBeschreibung
Di.16:00 - 18:0005.11.2013EI 3A Hörsaal Übersetzer für parallele Systeme
Di.16:00 - 18:0012.11.2013Seminarraum Argentinierstrasse Übersetzer für parallele Systeme
Di.16:00 - 18:0019.11.2013 - 17.12.2013EI 3A Hörsaal Übersetzer für parallele Systeme
Di.16:00 - 18:0007.01.2014 - 28.01.2014EI 3A Hörsaal Übersetzer für parallele Systeme
Übersetzer für Parallele Systeme - Einzeltermine
TagDatumZeitOrtBeschreibung
Di.05.11.201316:00 - 18:00EI 3A Hörsaal Übersetzer für parallele Systeme
Di.12.11.201316:00 - 18:00Seminarraum Argentinierstrasse Übersetzer für parallele Systeme
Di.19.11.201316:00 - 18:00EI 3A Hörsaal Übersetzer für parallele Systeme
Di.26.11.201316:00 - 18:00EI 3A Hörsaal Übersetzer für parallele Systeme
Di.03.12.201316:00 - 18:00EI 3A Hörsaal Übersetzer für parallele Systeme
Di.10.12.201316:00 - 18:00EI 3A Hörsaal Übersetzer für parallele Systeme
Di.17.12.201316:00 - 18:00EI 3A Hörsaal Übersetzer für parallele Systeme
Di.07.01.201416:00 - 18:00EI 3A Hörsaal Übersetzer für parallele Systeme
Di.14.01.201416:00 - 18:00EI 3A Hörsaal Übersetzer für parallele Systeme
Di.21.01.201416:00 - 18:00EI 3A Hörsaal Übersetzer für parallele Systeme
Di.28.01.201416:00 - 18:00EI 3A Hörsaal Übersetzer für parallele Systeme
LVA wird geblockt abgehalten

Leistungsnachweis

Abgabegespräche zu Übungs-/Programmieraufgaben, schriftl. Prüfung

LVA-Anmeldung

Von Bis Abmeldung bis
23.09.2013 08:00 15.10.2013 18:00 31.10.2013 18:00

Curricula

StudienkennzahlVerbindlichkeitSemesterAnm.Bed.Info
066 931 Computational Intelligence Gebundenes Wahlfach
066 937 Software Engineering & Internet Computing Gebundenes Wahlfach

Literatur

Randy Allen, Ken Kennedy. Optimizing compilers for modern architectures. Kaufmann, 2002.
Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, Compilers: Principles, Techniques, & Tools (2nd Edition). Pearson Addison Wesley, 2007.
Michael J. Wolfe. High-Performance Compilers for Parallel Computing. Addison-Wesley, 1996.
Hans Zima, Barbara Chapman. Supercompilers for Parallel and Vector Computers. ACM Press, 1990.

Vorkenntnisse

Grundbegriffe aus Übersetzerbau, Parallele Programmierung.

Vorausgehende Lehrveranstaltungen

Begleitende Lehrveranstaltungen

Weitere Informationen

Sprache

bei Bedarf in Englisch