Motivation
Die Möglichkeiten, die Geschwindigkeit eines einzelnen Rechenkerns zu steigern, scheinen weitgehend ausgereizt. Deshalb gehen die Prozessorhersteller dazu über, viele parallel arbeitende Kerne auf einem Chip zu integrieren. Das bedeutet neue Herausforderungen für alle Softwareentwickler, egal ob im Bereich des Höchstleistungsrechnens (HPC) oder für Eingebettete Systeme. Gleichzeitig werden in immer stärkerem Maße Graphikkarten (GPU’s) und andere Beschleunigertechnologien eingesetzt. Zukünftige Systeme werden damit immer heterogener und es wird schwerer, sie effizient zu programmieren. Um ein solches System gut auszunutzen, braucht der Anwender eine detaillierte Kenntnis der Hardware und seine Anpassung der Software läuft dann nur auf einem System wirklich gut. Bei der heutigen und vor allem zukünftigen Systemgröße tritt auch noch ein zweites Problem auf. Durch die steigende Komplexität und Größe der Systeme kommt es verstärkt zu Ausfällen von Komponenten. Damit wird die fehlende Zuverlässigkeit ein immer drängenderes Problem. Üblicherweise schreiben die Anwendungsprogramme viele Zwischenergebnisse auf Speichermedien, um das Programm bei einem Systemausfall an dieser Stelle wieder zu starten. Dadurch werden die Anwendungsprogramme aber viel langsamer und es wird immer mehr Speicher benötigt.
Ziele und Vorgehen
Das Projekt ENVELOPE möchte dieser Entwicklung begegnen und die Komplexität eines HPC-Systems vor dem Anwender verbergen, dabei aber gleichzeitig dafür sorgen, dass die Ressourcen des HPC-Systems effizient genutzt werden. Zukünftige Ausfälle sollen schon proaktiv erkannt und entsprechende Maßnahmen zur weiteren Ausführbarkeit der Simulationen ergriffen werden. Damit wird nicht nur die Zuverlässigkeit entscheidend erhöht, sondern auch die Ausführung von Simulationen stabil gewährleistet (Fehlertoleranz). Gleichzeitig müssen nicht mehr so viele Zwischenergebnisse (sogenannte Check-Points) abgespeichert werden und die Programme laufen schneller.
Innovationen und Perspektiven
Im vorliegenden Projekt sollen zur Realisierung dieser Ideen Selbstorganisationstechniken zum Einsatz kommen. Dabei werden nicht mehr alle Möglichkeiten im Vorfeld programmiert, sondern die Software findet selbstständig (oder selbst-organisiert) einen Lösungsweg. So lassen sich z. B. aus dem Verhalten der Systemkomponenten (vermehrtes Auftreten von Speicherfehlern etc.) Aussagen über den Systemzustand treffen und Prognosen abgeben. ENVELOPE wird den im Projekt entwickelten Ansatz für das Laufzeitsystem HALadapt beispielhaft implementieren und damit einen Demonstrator bauen. Eine Verallgemeinerung auf andere Systeme soll damit auch möglich sein.