Vorlesung Leistungs- und Korrektheitsanalyse paralleler Programme

 

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 Vorlesungstermine werden als Fragestunden (via Zoom) zu den veröffentlichten Vorlesungsvideos der jeweils vorherigen Woche zur Verfügung stehen.

Termine

Die Vorlesung startet mit einer Einführungsveranstaltung am Donnerstag, 7. April, um 14:30 Uhr im Seminarraum 5056 (Informatikgebäude E2, 2356|056). Details werden im Moodle-Lernraum veröffentlicht. Bitte registrieren Sie sich daher über RWTHonline für die Veranstaltung (s.u.).

Termin für Fragestunden

  • Montag, 14:30 - 16:00 in Seminarraum 5056 (beginnend ab 25.04.)

Übungen

  • Donnerstag, 14:30 - 16:00 in Seminarraum 5056

Registrierung

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

Prüfungszulassung

Um die Prüfungszulassung zu erhalten, ist die erfolgreiche Bearbeitung von zwei Übungsblättern erforderlich. Details zur Prüfungszulassung werden in der ersten Vorlesung angekündigt.

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)