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 am Dienstag, den 20. April 2021, um 12: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. Wir empfehlen Studierenden zur Vorbereitung die Installation des Zoom-Clients.

Termin für Fragestunden

  • Di, 12:30 - 14:00 Uhr

Übungen

  • Fr, 10:30 - 12:00 Uhr

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)