Vorlesung Leistungs- und Korrektheitsanalyse paralleler Programme

 

Um immer komplexer werdende wissenschaftliche Simulationen effizient auf heutigen und zukünftigen Großrechnern laufen zu lassen, ist ein steigender Grad an Parallelität nötig. Der steigende Grad an Parallelität geht mit steigender Komplexität der Anwendungsprogrammierung einher. Mögliche vermehrte Fehler wie beispielsweise Deadlocks oder Data Races, die die Simulationscodes aufweisen, können mit Hilfe von Korrektheitsanalyse-Methoden und -Werkzeugen detektiert werden, die in dieser Vorlesung vorgestellt werden. Für die Performance-Optimierung eines (resultierenden) korrekten parallelen Programms werden weiterhin Möglichkeiten zur Performance-Analyse betrachtet.

Lernziele der Vorlesung sind das Erkennen und Verstehen von Performance-Problemen und Quellen von Programmierfehlern in parallelen Anwendungen, sowie das Verständnis von Methoden und Werkzeugen zur (semi)-automatischen Leistungs- und Korrektheitsanalyse.

Inhalt

  • Skalierbarkeit von parallelen Anwendungen
  • Performance-Monitoring (Profiling, Tracing, Event-Driven, Sample-Driven)
  • Instrumentierung
  • Methoden der Leistungsanalyse
  • Fehlerklassen (Deadlocks, Race Conditions)
  • Klassische Debugging Technologie
  • Methoden zur Fehlererkennung (Statische Programmanalyse, Laufzeit, Formale Methoden)
  • Fehler bei der Programmierung mit MPI
  • Deadlockerkennung
  • Designmethoden zur Fehlervermeidung und -erkennung (Assertions, Correctness-by-Construction)

Die Liste der aktuellen Lehrveranstaltungen finden Sie unter Teaching – Chair for Computer Science 12. .