Projekte

Aktuelle Projekte

Compiler-basierte Korrektheitsprüfungen für SPMD-Anwendungen
Laufzeit: 01.03.2021 bis 28.02.2027

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.
Dieser Text wurde mit DeepL übersetzt

Projekt im Forschungsportal ansehen

Eine allgemeine Speicher-Engine für moderne Speicherhierarchien
Laufzeit: 01.10.2022 bis 30.09.2025

Die wissenschaftliche Forschung wird zunehmend von datenintensiven Problemen bestimmt. Da die Komplexität der untersuchten Probleme zunimmt, steigt auch der Bedarf an hohem Datendurchsatz und -kapazität. Das weltweit produzierte Datenvolumen verdoppelt sich etwa alle zwei Jahre, was zu einer exponentiellen Datenflut führt. Diese Datenflut stellt eine direkte Herausforderung für Datenbankmanagementsysteme und Dateisysteme dar, die die Grundlage für eine effiziente Datenanalyse und -verwaltung bilden. Diese Systeme verwenden verschiedene Speichergeräte, die traditionell in Primär-, Sekundär- und Tertiärspeicher unterteilt waren. Mit der Einführung der disruptiven Technologie des nichtflüchtigen Arbeitsspeichers (NVRAM) begannen diese Klassen jedoch miteinander zu verschmelzen, was zu heterogenen Speicherarchitekturen führte, bei denen jedes Speichergerät sehr unterschiedliche Leistungsmerkmale aufweist (z. B. Persistenz, Speicherkapazität, Latenz). Eine große Herausforderung ist daher die Ausnutzung der spezifischen Leistungscharakteristika dieser Speichergeräte.
Zu diesem Zweck wird SMASH die Vorteile einer gemeinsamen Speicher-Engine untersuchen, die eine heterogene Speicherlandschaft verwaltet, einschließlich herkömmlicher Speichergeräte und nichtflüchtiger Speichertechnologien. Das Herzstück dieser Speicher-Engine werden B-epsilon-Bäume sein, da diese zur effizienten Nutzung dieser unterschiedlichen Geräte verwendet werden können. Darüber hinaus werden Strategien zur Datenplatzierung und -migration untersucht, um den durch die Übertragung von Daten zwischen verschiedenen Geräten verursachten Overhead zu minimieren. Durch den Wegfall der Notwendigkeit flüchtiger Caches kann die Datenkonsistenz besser sichergestellt werden. Auf der Anwendungsseite wird die Speicher-Engine Key-Value- und Objekt-Schnittstellen bieten, die für eine Vielzahl von Anwendungsfällen genutzt werden können, zum Beispiel für das Hochleistungsrechnen (HPC) und für Datenbankmanagementsysteme. Aufgrund der immer größer werdenden Kluft zwischen der Leistung von Rechen- und Speichergeräten sowie deren stagnierender Zugriffsleistung sind außerdem Techniken zur Datenreduzierung sehr gefragt, um den Bandbreitenbedarf beim Speichern und Abrufen von Daten zu verringern. Wir werden daher Forschungsarbeiten zu Datentransformationen im Allgemeinen und zu den Möglichkeiten externer und beschleunigter Transformationen durchführen. Übliche HPC-Workflows werden durch die Integration von SMASH in das bestehende JULEA-Storage-Framework unterstützt, während Datenbanksysteme die Schnittstelle von SMASH direkt nutzen können, um Daten zu speichern oder abzurufen.

Projekt im Forschungsportal ansehen

Abgeschlossene Projekte

Gekoppeltes Speichersystem für die effiziente Verwaltung selbst-beschreibender Datenformate
Laufzeit: 01.10.2019 bis 31.05.2023

Die Informationstechnologie wurde in den vergangenen Jahrzehnten immer wichtiger für die Gesellschaft. Insbesondere in der wissenschaftlichen Forschung können dadurch zunehmend komplexe Probleme gelöst werden, die heutzutage die Rechenleistung von Supercomputern benötigen. Die wachsende Komplexität der Fragestellungen sowie die steigende Rechenleistung führen dabei zu immer größer werdenden Datenmengen; die weltweit produzierte Datenmenge verdoppelt sich ungefähr alle zwei Jahre, was zu einem exponentiellen Wachstum führt. Dies führt zu Problemen, da die Verbesserung der Speicher- und Netzwerktechnologie deutlich langsamer voranschreitet. Das Resultat ist eine immer größer werdende Lücke zwischen der Leistungsfähigkeit von Rechen- und Speichergeräten, die zu einem Flaschenhals bei der Datenverwaltung führt. Dies betrifft insbesondere große Speichersysteme, wie sie im Hochleistungsrechnen genutzt werden. Um diese Situation zu verbessern, wird eine Hierarchie unterschiedlicher Speichergeräte eingesetzt, um sowohl die Kapazitäts- als auch die Geschwindigkeitsanforderungen zu erfüllen. Indem die Vorteile unterschiedlicher Speichertechnologien vereint werden, können einerseits die Leistung erhöht und andererseits die Kosten für Anschaffung, Betrieb und Wartung reduziert werden. Für zukünftige Exascale-Systeme werden sich diese Probleme noch verschärfen, weswegen signifikante Verbesserungen notwendig werden, um die Leistungsfähigkeit solcher Systeme ausnutzen zu können. Die existierende E/A-Softwareumgebung verursacht zusätzliche Probleme bei der Leistungsfähigkeit und Datenverwaltung.
Die produzierten Daten werden typischerweise mithilfe selbst-beschreibender Datenformate gespeichert, um den Austausch und die Analyse in der wissenschaftlichen Gemeinschaft zu ermöglichen. Das Ziel des Projektes ist es, die Vorteile eines Speichersystems, das enger mit solchen Datenformaten gekoppelt ist, zu untersuchen. Im Rahmen des Projektes wird ein neuartiges hybrides Speichersystem entworfen, das Technologien aus dem Hochleistungsrechnen und den Datenbanksystemen nutzt. Durch die Kopplung können strukturelle Informationen genutzt werden, um passende Speichertechnologien und -hierarchiestufen auszuwählen. Da solche Informationen momentan nicht verfügbar sind, müssen existierende Speichersysteme auf Heuristiken zurückgreifen, die zu suboptimaler Leistung und unnötigen Datenbewegungen führen. Darüber hinaus wird das Speichersystem anpassbare E/A-Semantiken unterstützen, um Anwendungs- und Datenformatsanforderungen besser erfüllen zu können. Zusammengenommen werden diese Änderungen neuartige Datenverwaltungsansätze und Leistungssteigerungen ermöglichen. Existierende Abläufe wissenschaftlicher Nutzer werden mithilfe einer Datenanalyseschnittstelle unterstützt. Alle Änderungen werden ausführlich getestet, um Rückwärtskompatibilität zu garantieren. Es werden keine Änderungen notwendig sein, um existierende Anwendungen auf Basis von CoSEMoS auszuführen.

Projekt im Forschungsportal ansehen

Letzte Änderung: 08.06.2023 -
Ansprechpartner: Webmaster