« Forschungslandschaft: Projekte
Compiler-basierte Korrektheitsprüfungen für SPMD-Anwendungen
Projektleiter:
Projektbearbeiter:
M.Sc. Michael Blesel
Finanzierung:
Haushalt;
Die Probleme, die heute im Bereich des wissenschaftlichen Rechnens und des Hochleistungsrechnens bearbeitet werden, sind sehr komplex und erfordern immense Rechenressourcen. Aufgrund des Umfangs von Anwendungen wie z. B. Klimasimulationen müssen diese auf Clustern ausgeführt werden, die aus vielen vernetzten Rechnerknoten bestehen. Um diese Ressourcen nutzen zu können, muss eine Anwendung mit parallelen verteilten Programmiermodellen implementiert werden. Die Standardmethode, die hierfür im Hochleistungsrechnen verwendet wird, heißt Single Program, Multiple Data (SPMD). Eine Anwendung erzeugt mehrere Prozesse, die an demselben Problem arbeiten und über Nachrichtenübermittlung miteinander kommunizieren. Dies ermöglicht zwar eine hohe Skalierbarkeit, doch ist das SPMD-Modell nicht einfach zu programmieren, und es können viele neue Arten von Programmierfehlern auftreten.
In diesem Projekt entwickeln wir ein compilerbasiertes Tool namens SPMDClang, das die Entwickler von SPMD-Anwendungen mit Korrektheitsprüfungen zur Kompilierzeit unterstützt. Es basiert auf dem Clang-Frontend der LLVM-Compiler-Toolchain. Ziel ist es, Compilerwarnungen und Fehler über die Korrektheit der Kommunikationsschemata von SPMD-Codes während der Kompilierung zu liefern. Dies erfordert eine statische Analyse der Struktur der Message-Passing-Operationen in einem Programm und neu entwickelte Algorithmen zur Erkennung potenzieller Probleme mit den Kommunikationsmustern. Da einige wichtige Programmparameter, wie z.B. die Anzahl der Prozesse, die zur Laufzeit verwendet werden, zur Kompilierungszeit nicht klar sind, ist ein symbolischer Ausführungsansatz erforderlich, um das potenzielle Laufzeitverhalten der SPMD-Anwendung zu simulieren. Hierfür wird ein Ansatz entwickelt, der farbige Petri-Netze verwendet, um das Laufzeitverhalten des analysierten Programms zu simulieren. Mit diesem Projekt wollen wir herausfinden, inwieweit es möglich ist, SPMD-bezogene Fehlerklassen mit einem statischen Kompilierzeitansatz zu erkennen, da die meisten existierenden Arbeiten auf diesem Gebiet auf Laufzeitkorrektheitsprüfungen basieren. Darüber hinaus ist die Frage relevant, wie stark sich die Analyse der symbolischen Ausführung auf die Kompilierzeit einer Anwendung auswirken wird. Das Ziel ist es, ein benutzerfreundliches Werkzeug zur Verfügung zu stellen, das die Entwicklung von SPMD-Anwendungen für Entwickler erleichtert. Wir haben die Möglichkeit, diese Aspekte zu evaluieren, indem wir das entwickelte Werkzeug in unsere Kurse zur parallelen Programmierung einbinden, in denen die Entwicklung von SPMD-Anwendungen in den Übungen gelehrt wird.
In diesem Projekt entwickeln wir ein compilerbasiertes Tool namens SPMDClang, das die Entwickler von SPMD-Anwendungen mit Korrektheitsprüfungen zur Kompilierzeit unterstützt. Es basiert auf dem Clang-Frontend der LLVM-Compiler-Toolchain. Ziel ist es, Compilerwarnungen und Fehler über die Korrektheit der Kommunikationsschemata von SPMD-Codes während der Kompilierung zu liefern. Dies erfordert eine statische Analyse der Struktur der Message-Passing-Operationen in einem Programm und neu entwickelte Algorithmen zur Erkennung potenzieller Probleme mit den Kommunikationsmustern. Da einige wichtige Programmparameter, wie z.B. die Anzahl der Prozesse, die zur Laufzeit verwendet werden, zur Kompilierungszeit nicht klar sind, ist ein symbolischer Ausführungsansatz erforderlich, um das potenzielle Laufzeitverhalten der SPMD-Anwendung zu simulieren. Hierfür wird ein Ansatz entwickelt, der farbige Petri-Netze verwendet, um das Laufzeitverhalten des analysierten Programms zu simulieren. Mit diesem Projekt wollen wir herausfinden, inwieweit es möglich ist, SPMD-bezogene Fehlerklassen mit einem statischen Kompilierzeitansatz zu erkennen, da die meisten existierenden Arbeiten auf diesem Gebiet auf Laufzeitkorrektheitsprüfungen basieren. Darüber hinaus ist die Frage relevant, wie stark sich die Analyse der symbolischen Ausführung auf die Kompilierzeit einer Anwendung auswirken wird. Das Ziel ist es, ein benutzerfreundliches Werkzeug zur Verfügung zu stellen, das die Entwicklung von SPMD-Anwendungen für Entwickler erleichtert. Wir haben die Möglichkeit, diese Aspekte zu evaluieren, indem wir das entwickelte Werkzeug in unsere Kurse zur parallelen Programmierung einbinden, in denen die Entwicklung von SPMD-Anwendungen in den Übungen gelehrt wird.
Kontakt

Prof. Dr. Michael Kuhn
Otto-von-Guericke-Universität Magdeburg
Fakultät für Informatik
Institut für Intelligente Kooperierende Systeme
Universitätsplatz 2
39106
Magdeburg
Tel.:+49 391 6752632
weitere Projekte
Die Daten werden geladen ...