Detailseite
Projekt Druckansicht

Fehlertoleranz und lokalitätsoptimiertes Work-Stealing für parallele Programme mit dynamisch generierten abhängigen Tasks auf Rechnerclustern

Fachliche Zuordnung Rechnerarchitektur, eingebettete und massiv parallele Systeme
Softwaretechnik und Programmiersprachen
Förderung Förderung seit 2022
Projektkennung Deutsche Forschungsgemeinschaft (DFG) - Projektnummer 512078735
 
Programmierumgebungen für heutige Hochleistungsrechner müssen die Entwicklung effizienter paralleler Programme unterstützen und gleichzeitig weiteren Anforderungen wie einer hohen Produktivität bei der Programmerstellung sowie einem flexiblen Umgang mit irregulären Anwendungen und Hardwarefehlern gerecht werden.Während sich diese Ziele mit herkömmlichen Programmierwerkzeugen nur schwer erreichen lassen, verspricht der Ansatz der Asynchronous Many-Task (AMT) Programmierung ihre gleichzeitige Realisierung. Hier wird die Berechnung in viele kleine Arbeitspakete (engl.: tasks) zerlegt, zwischen denen es Abhängigkeiten geben kann. Die Tasks werden zur Laufzeit über sogenanntes Work-Stealing auf eine begrenzte Zahl von Prozessen oder Threads aufgeteilt.Die AMT Programmierung hat auf Einzelrechnern mit Mehrkernprozessoren bereits praktische Bedeutung erlangt und stellt hier leistungsfähige Funktionalitäten wie das dynamische Erzeugen von Tasks (zur Unterstützung irregulärer Anwendungen) und globales Work-Stealing (zur gleichmäßigen Auslastung der Kerne) zur Verfügung.Im Gegensatz dazu sind die AMT Funktionalitäten auf Rechnerclustern noch eingeschränkt. Eine grundlegende Schwierigkeit besteht im gleichzeitigen Erreichen von Lastausgleich und geringen Kommunikationskosten. Insbesondere sollten Tasks in der Nähe der von ihnen benutzten Daten ausgeführt werden, was auch als Lokalität bezeichnet wird. Ebenso kommt der Behandlung von Hardwarefehlern auf Clustern eine entscheidende Bedeutung zu, da Cluster deutlich mehr Hardwarekomponenten als Einzelrechner enthalten. Trotz der prinzipiellen Eignung des taskbasierten Ansatzes für den Umgang mit Hardwarefehlern fehlt es bisher weitgehend an konkreten Algorithmen und Techniken.Das vorliegende Projekt adressiert Lokalität und Fehlertoleranz gemeinsam. Als Grundlage für unsere Untersuchungen werden wir zunächst eine prototypische AMT Programmierumgebung für Cluster entwickeln, welche die wesentlichen Merkmale heutiger Einzelrechner-Programmierumgebungen in einfacher Form repräsentiert: dynamische Taskerzeugung, globales Work-Stealing, Taskabhängigkeiten (realisiert mit dem Future-Konstrukt) und bestimmte Formen globaler Datenzugriffe. Für diese Plattform werden wir dann ein lokalitätsoptimiertes Work-Stealing entwickeln und es mit Fehlertoleranz verbinden. Diese bezieht sich umfassend auf den permanenten Ausfall ein oder mehrerer Prozesse sowie auf sporadische Hardwarefehler, die lange unerkannt bleiben und Folgefehler verursachen können. Die Lokalitätsoptimierung berücksichtigt die Platzierung von sowohl Daten als auch Tasks. Alle Techniken sind im Laufzeitsystem angesiedelt und kommen ohne Änderungen am Nutzerprogramm aus.Aus methodischer Sicht werden im Projekt neue Algorithmen und Techniken entwickelt, implementiert und experimentell bewertet. Die Entwicklung soll schrittweise von einfacheren zu allgemeineren Programmkonstrukten und Fehlerszenarien hin erfolgen.
DFG-Verfahren Sachbeihilfen
 
 

Zusatzinformationen

Textvergrößerung und Kontrastanpassung