|
Übersetzer für Parallele Systeme
Compilers for Parallel Systems
|
VU 2h 3.0 ECTS
|
WS 2013/14
|
|
TISS LVA 185.A64
|
|
Computerprogramme weisen einen bestimmten Grad an Parallelismus auf, wodurch auf paralleler Hardware mehrere Operationen gleichzeitig ausgeführt werden können. In
Multicore-PCs rechnen bis zu acht, im Intel Xeon Phi Koprozessor 60, in
den stärksten Supercomputern Millionen von Prozessorkernen.
|
Parallelismus kann im Programm implizit enthalten (z. B. in einer Schleife mit voneinander unabhängigen Iterationen) oder explizit, mittels paralleler Sprachkonstrukte, angegeben sein.
|
|
|
Source: en.wikipedia.org/wiki/Parallel_computing
|
|
Der Programmieraufwand für eine parallele Implementierung ist zumeist deutlich
höher als für eine sequentielle, daher kommt dem Compiler eine wichtige
Rolle bei der Unterstützung der Programmentwicklung zu. Nicht von ungefähr wird
das Parallelisieren eines Programms oft als "tedious and error-prone"
- mühsame und fehleranfällige - Aufgabe bezeichnet. Dies gilt erst recht, wenn
ein hoher Performancegewinn, und zwar für eine konkrete parallele Architektur
mit bestimmten performancerelevanten Merkmalen, erzielt werden soll.
|
Wie kann ein Übersetzer impliziten Parallelismus automatisch erkennen und
- ebenso wie explizit spezifizierten -
auf eine parallele Zielarchitektur abbilden, so dass deren Ressourcen optimal genutzt
werden ?
|
Diese Fragestellung steht im Zentrum der Lehrveranstaltung. Sie behandelt Übersetzungs- und Optimierungstechniken,
die effizienten Code für Parallelrechner liefern.
|
|
Teil der Master-Curricula Computational Intelligence und Software Engineering & Internet Computing.
|
|
Vortragender: Hans Moritsch
|
|
Lernziele:
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.
|
|
Die begleitenden LVAs Optimierende Übersetzer und Codegeneratoren behandeln
Techniken der Datenflussanalyse und maschinenunabhängigen Optimierung sowie
Codeoptimierung auf Instruktionsebene für (super-)skalare Architekturen.
|
|
Anmeldung und Details:
TISS LVA 185.A64
|
|
Termine:
|
08.10. 15:00 Seminarraum Argentinierstraße
|
15.10. 16:00 Seminarraum Argentinierstraße
|
22.10. 16:00 Seminarraum Argentinierstraße
|
29.10. 16:00 Hörsaal EI 3A
|
12.11. 16:00 Seminarraum Argentinierstraße
|
19.11. 16:00 Hörsaal EI 3A
|
03.12. 16:00 Hörsaal EI 3A
|
10.12. 16:00 Hörsaal EI 3A
|
17.12. 16:00 Hörsaal EI 3A
|
07.01. 16:00 Hörsaal EI 3A
|
14.01. 16:00 Hörsaal EI 3A
|
21.01. 16:00 Hörsaal EI 3A
|
28.01. 16:00 Hörsaal EI 3A: Prüfung
28.01. 17:00 Bibliothek E185.1: Vortrag "The Insieme Compiler and Runtime Infrastructure"
|