Projekte

Aktuelle Projekte

Compiler-based correctness checks for SPMD applications
Laufzeit: 01.03.2021 bis 28.02.2027

The problems that are being worked on in scientific computing and high performance computing today are highly complex and require immense computing resources. Due to the scale of applications such as, for example, climate simulations they need to be run on clusters that consist of many networked computing nodes. To utilize these resources, an application is required to be implemented using parallel distributed programming models. The standard method used for this in high performance computing is called Single Program, Multiple Data (SPMD). An application spawns multiple processes that work on the same problem and communicate with each other via message passing. While this allows for a high scalability, the SPMD model is not easy to program and many new types of programming errors can arise.

In this project, we are developing a compiler-based tool called SPMDClang, which supports the developers of SPMD applications with compile time correctness checks. It is based on the Clang frontend of the LLVM compiler toolchain. The goal is to provide compiler warnings and errors about the correctness of the communication schemes of SPMD codes during compilation. This requires the static analysis of the structure of the message passing operations in a program and newly developed algorithms to detect potential problems with the communication patterns. Due to the fact that some important program parameters such as the number of processes that will be used at runtime are not clear at compile time, a symbolic execution approach is required to simulate the potential runtime behavior of the SPMD application. For this an approach of using colored Petri nets to simulate the runtime behavior of the analyzed program is being developed. With this project, we aim to ascertain to what degree it is possible to detect SPMD-related error classes with a static compile time approach since most existing work in this area is based on runtime correctness checks. Additionally, a relevant question is how strongly the symbolic execution analysis will impact the compile time of an application. The goal is to provide a user-friendly tool that makes the development of SPMD applications easier on developers. We have the opportunity to evaluate these aspects by incorporating the developed tool in our courses on parallel programming where the development of SPMD applications is taught in the exercises.

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