Ü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"

[Complang-Gruppe] [Fakultät für Informatik] [Technische Universität Wien]