Professur Praktische Informatik

Lehre

Lehrveranstaltungen im Sommersemester 2013:

Veranstaltung Tag Zeit Raum Art Dozent
Parallele Programmierung Di 15:30 - 17:00 1/208 V Prof. Dr. G. Rünger
  Mi 17:15 - 18:45 1/375 Ü Dr. M. Schwind
Optimierung im Compilerbau Di 13:45 - 15:15 1/208 V Prof. Dr. G. Rünger
  Mo 15:30 - 17:00 1/208 Ü Dr. J. Dümmler
Paralleles Wissenschaftliches Rechnen Mi 11:30 - 13:00 1/208 V Prof. Dr. G. Rünger
  Fr 13:45 - 15:15 1/208a Ü Dr. M. Schwind
Proseminar Praktische Informatik S Prof. Dr. G. Rünger
Dr. J. Dümmler
Hauptseminar Praktische Informatik Mi 9:15 – 10:45 1/208 S Prof. Dr. G. Rünger
Dr. J. Dümmler
Forschungspraktikum Parallele und Verteilte Systeme P Prof. Dr. G. Rünger
Dr. M. Schwind

(V: Vorlesung, Ü: Übung, S: Seminar, P: Praktikum)

Lehrangebot der Professur

Vorlesungen im Wintersemester

Höhere Programmiersprachen

Die Vorlesung behandelt Konzepte und Realisierung höherer Programmiersprachen, Syntaxbeschreibungen, Implementierungsaspekte sowie imperative, objektorientierte, funktionale und parallele Programmierkonzepte.

Compilerbau

Die Vorlesung stellt Konzepte und Techniken des Compilerbaus vor, die für die Entwicklung eines Compilers notwendig sind. Dabei werden alle konzeptionellen Phasen eines Compilers von der lexikalischen Analyse bis hin zur Codegenerierung angesprochen. Darüber hinaus sollen Techniken zur effizienten automatisierten Analyse und Bearbeitung hierarchisch strukturierter Dokumente erlernt werden.

Multicore-Programmierung

Die Vorlesung behandelt Programmiertechniken bzw. Programmiermodelle für Multicore-Prozessoren. Dies beinhaltet Techniken der Threadprogrammierung (z. B. Java-Threads, Intel Threading Building Blocks) und neuere Sprachansätze (z. B. OpenMP).

Vorlesungen im Sommersemester

Parallele Programmierung

Die Vorlesung stellt verschiedene Ansätze der parallelen Programmierung anhand der Programmierumgebungen Pthreads, Java-Threads, OpenMP, MPI, PVM und UPC vor. Es wird in die zugrunde liegenden Programmiermodelle, parallelen Entwurfsmuster sowie Konzepte der Programmierumgebungen eingeführt. Die praktische Umsetzung paralleler Programme wird auf Plattformen wie großen Parallelrechnern, Multicore-Systemen, GPUs etc. vermittelt.

Optimierung im Compilerbau

Die Vorlesung beschäftigt sich mit klassischen Optimierungsverfahren des Compilerbaus und mit Optimierungsverfahren für Speicherhierarchien oder Parallelrechner. Im Einzelnen werden die folgenden Themengebiete behandelt: Datenflussanalyse und optimierende Transformationen zur Verbesserung des Programmverhaltens; Datenabhängigkeitsanalysen zur Ausnutzung von mehreren Funktionseinheiten moderner Mikroprozessoren; Lokalitäts- und Parallelitätsanalyse von Programmen; Programmtransformationen zur Optimierung von Programmen für Rechner mit Speicherhierarchien.

Paralleles wissenschaftliches Rechnen

Die Vorlesung „Paralleles Wissenschaftliches Rechnen“ befasst sich mit Anwendungen und Algorithmen des wissenschaftlichen Rechnens und deren effizienter Realisierung auf modernen Parallelrechnern. Vorgestellt werden einzelne Algorithmen der Numerik und spezielle Applikationen. Ebenso werden grundlegende Techniken zur Unterstützung der parallelen Programmierung besprochen. Hier sind etwa Partitionierungen, Lastbalancierungs- und Schedulingalgorithmen zu nennen.

Weiteres Lehrangebot

Proseminar Parallele Programmierung

Das Proseminar Parallele Programmierung behandelt grundlegende Themen zu parallelen Algorithmen und deren effizienter Umsetzung auf verschiedenen Parallelrechnerarchitekturen. Es wird im Sommer- und im Wintersemester angeboten.

Haupt-/Forschungsseminar

Es findet in jedem Semester ein Haupt- und Forschungsseminar statt, im Wintersemester in der Regel zum Themenbereich Parallele und Multicore-Programmierung, im Sommersemester meist zum Themenkomplex Compilerbau.

Praktikum Parallele Programmierung

Im Praktikum Parallele Programmierung werden ausgewählte Algorithmen und Anwendungen aus dem Bereich des wissenschaftlichen Rechnens auf modernen parallelen Systemen realisiert. Die Aufgaben umfassen Programmierung für gemeinsamen Speicher (z. B. mit OpenMP) oder für verteilten Speicher (z. B. mit MPI) sowie Programmierung für Grafikprozessoren (z. B. mit CUDA). Das Praktikum wird in jedem Semester angeboten.

Studien- und Abschlussarbeiten

Bachelor-, Master-, Studien- oder Diplomarbeiten werden jederzeit angeboten. Diese bieten die Möglichkeit, ein Thema aus dem Forschungsumfeld der Professur näher zu vertiefen. Eine (nicht abschließende) Liste von Themen findet sich unter: „Offene Themenstellungen“.