Kategorien
Seiten
-

IT Center Blog

MUST
Laufzeit-Fehlererkennung für MPI-Anwendungen

05. September 2022 | von
Logo MUST

Quelle: Eigene Darstellung

Das Hochleistungsrechnen (HPC) beschäftigt sich in großen Teilen mit der Parallelisierung von Programmen, insbesondere komplexen Simulationen wie Modellen für die Wettervorhersage oder das Klima. Damit Berechnungen schnell ausgeführt werden, wird die zu erledigende Arbeit parallel auf verschiedene Prozessen aufgeteilt. Je nach Anwendungsfall müssen die Prozesse ihre Zwischenergebnisse zur Laufzeit des Programms mit anderen Prozessen austauschen.

 

Das Message Passing Interface (MPI) ist eine Standardmethode zum Austausch von Nachrichten zwischen mehreren Prozessen oder Computern, auf denen ein Programm verteilten Speicher nutzt. Bei falscher Nutzung von MPI können Fehler auftreten, die teilweise sehr schwierig zu erkennen sind. Das Marmot Umpire Scalable Tool (MUST) ist ein Laufzeit-Korrektheitsanalysewerkzeug, das automatisch eine nicht standardkonforme Nutzung von MPI erfasst. MUST wird von der HPC-Gruppe am IT Center in Kooperation mit dem Lawrence Livermore National Laboratory und der TU Darmstadt entwickelt. MUST ist als Open-Source-Software verfügbar.

 

Anwendung von MUST

MUST wird der Zielapplikation vorgeschaltet, fängt deren MPI-Aufrufe ab und führt dabei zur Laufzeit des Programms die Korrektheitsanalyse aus.
Ein typischer Fehler bei der Nutzung von MPI ist die Verklemmung (Deadlock). Ein Deadlock ist in der Informatik ein Zustand von Prozessen, bei dem mindestens zwei Prozesse untereinander auf Ressourcen warten, die dem jeweils anderen Prozess zugeteilt sind.

 

Beispiel: Deadlock

Vier Autos fahren auf eine Kreuzung zu und konkurrieren darum als erstes weiter zu fahren. Es gilt die Rechts-vor-Links-Regel.
Ein Deadlock ist entstanden, da ohne weitere Verständigung kein Auto weiterfahren kann. Aufgelöst werden kann diese Verklemmung also erst, wenn eine Person entscheidet, welches Auto als erstes weiterfahren darf.

Vier bunte Fahrzeuge fahren gleichzeitig auf eine Kreuzung zu

Deadlock
Quelle: Eigene Darstellung

 

In MPI würde das bedeuten, dass unendlich lange auf eine Nachricht zum Auflösen der Situation gewartet werden würde, wenn eine solche Verklemmung entsteht.
MUST erkennt durch die Vorschaltung den Deadlock und meldet ihn an den Entwickler. Dieser kann anschließend den Fehler im Programm beheben, damit es nicht erneut zu dieser Verklemmung kommt. MUST erkennt solche Fehler direkt während der Ausführung, sodass bei Berechnungen, die über mehrere Tage laufen, der Fehler zeitnah durch den Entwickler erkannt wird.

 

Weitere Anwendungsfälle von MUST

Ein Deadlock ist nur einer von zahlreichen potentiellen Fehlern in der MPI-Programmierung. MUST erkennt darüber hinaus:

– Unzulässige oder falsche Argumente
– Ressourcenverwendungsfehler und –lecks
– Datentyp-Abgleichungsfehler
– Überlappungen in Kommunikationspuffern
– Data Races im Zusammenhang mit MPI-Funktionsaufrufen

Zurzeit bietet MUST ein umfangreiches Angebot an Korrektheitsprüfungen, da wo Überprüfungen für MPI-Programme mit vielen parallelen Prozesse notwendig sind.
Quelltexte und Dokumentation zu MUST sind auf unserer Webseite verfügbar und weitere Informationen zu MUST findet ihr im HPC-Wiki.

Verantwortlich für die Inhalte dieses Beitrags sind Simon Schwitanski und Janin Vreydal.

Kommentare sind geschlossen.