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 |
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 vermittelt Übersetzungs- und Optimierungstechniken, die effizienten Code für Parallelrechner liefern. Als Zielarchitekturen werden Multiprozessorsysteme mit gemeinsamem (z.B. Multicore-Prozessoren) und verteiltem Speicher (z. B. Linux-Cluster, massiv parallele Systeme), betrachtet.
Inhalt: Überblick über Parallele Systeme, Datenabhängigkeit, Kontrollabhängigkeit, Programmtransformationen, Vektorisierung, Parallelisierung für Systeme mit gemeinsamem und verteiltem Speicher, Lokalitätsoptimierungen, Polyhedrales Modell, Zwischendarstellungen, Programmanalysen, Übersetzung von parallelen Sprachen; Ausblick: Autotuning, Laufzeitparallelisierung.
Grundlegende Kenntnisse aus Übersetzerbau und Paralleler Programmierung sind vorteilhaft, aber keine unbedingte Voraussetzung.
Es wird ein source-to-source Compiler für eine imperative Sprache, mit Zielsprache Fortran 95 (implementiert in C/lex/yacc) zur Verfügung gestellt. Im Rahmen des Übungsteils wird er um Programmtransformationen und Übersetzungstechniken (Vektorisierung, Parallelisierung) erweitert. C-Kenntnisse und Verständnis der Syntaxbaum-Datenstrukturen sind dafür ausreichend. Als parallele Zielkonstrukte werden
Teil der Master-Curricula 066 931: Computational Intelligence und 066 937: Software Engineering & Internet Computing.
Vortragender: Hans Moritsch
Die begleitenden LVAs Optimierende Übersetzer und Codegeneratoren behandeln Techniken der Datenflussanalyse und maschinenunabhängigen Optimierung sowie Codeoptimierung auf Instruktionsebene für (super-)skalare Architekturen.