Vorlesung Leistungs- und Korrektheitsanalyse paralleler Programme

Einführungsvideo

Ein zweiminütiges Einführungsvideo gibt einen Überblick zu den behandelten Themen der Vorlesung.

Organisation

Die Vorlesung wird im "Flipped-Classroom"-Konzept durchgeführt. Das bedeutet, dass die Vorlesung in Unterabschnitte der Länge 20 bis 30 Minuten unterteilt und in Form von Videos im Moodle-Lernraum bereitgestellt wird. Wir werden außerdem zusätzliches Material, Quizzes usw. bereitstellen. Die ursprünglichen Vorlesungstermine werden als Fragestunden (via Zoom) zu den veröffentlichten Vorlesungsvideos der jeweils vorherigen Woche zur Verfügung stehen.

Termine

Die Vorlesung startet am Donnerstag, den 09. April, um 14:30 Uhr über das Videokonferenzsystem Zoom. Der Link zu der Videokonferenz wird im Moodle-Lernraum veröffentlicht. Bitte registrieren Sie sich daher über RWTHonline für die Veranstaltung (s.u.).

Die Teilnahme an den Zoom-Videokonferenzen ist optional. Bis auf Weiteres werden wir die Vorlesung in diesem Format organisieren. Wir empfehlen Studierenden zur Vorbereitung die Installation des Zoom-Clients.

Termin für Fragestunden

  • Do, 14:30 - 16:00 Uhr

Registrierung

Die Registrierung für die Veranstaltung erfolgt über RWTHonline.

Materialien

Materialien werden im Moodle-Lernraum veröffentlicht. Zugriff erhalten Sie durch eine Registrierung für die Vorlesung in RWTHonline.

Beschreibung

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)