Vorlesung Leistungs- und Korrektheitsanalyse paralleler Programme

 

Organisation

Die Vorlesung wird in Präsenz gehalten. Als Backup werden wir ebenfalls Vorlesungsvideos aus dem vorherigen Jahr zur Verfügung stellen, jedoch ohne Garantie auf Aktualität. Wir werden außerdem zusätzliches Material, Quizzes usw. bereitstellen.

Termine

Die Vorlesung startet mit einer Einführungsveranstaltung am Montag, 3. 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.).

Termine für Vorlesungen und Übungen

  • Montag, 14:30 - 16:00 in Seminarraum 5056
  • Donnerstag, 12:30 - 14: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)