Dissertationen

Fehlertoleranz und Elastizität für ein Framework zur globalen Lastenbalancierung (Marco Bungart, 2018)

Die Anzahl an Rechenknoten in Hochleistungsrechnern wächst stetig. In solchen Systemen nimmt die Bedeutung von Fehlertoleranz zu, da die Wahrscheinlichkeit eines permanenten Knotenausfalls ebenfalls stetig wächst.

Fehlertoleranz gegenüber permanenten Knotenausfällen wird typischerweise durch Checkpointing auf Systemebene realisiert. Findet das Checkpointing jedoch auf Anwendungsebene statt, können Laufzeitvorteile erzielt werden. Diese Implementierungen sind allerdings zeitintensiv und fehleranfällig. Anwendungen, die gegenüber solcher permanenten Knotenausfälle resistent sind, werden im weiteren Verlauf dieser Arbeit fehlertolerant genannt.

Neben der Fehlertoleranz steht auch die optimale Auslastung von Hochleistungsrechnern im Fokus der Forschung. Die Auslastung kann durch dynamische Umverteilung der Rechenressourcen zur Laufzeit verbessert werden. Hierzu müssen die Applikationen in der Lage sein, zur Laufzeit Rechenressourcen freizugeben und neue Rechenressourcen in die Berechnung aufzunehmen. Solche Applikationen werden elastisch genannt.


 

 

Programming Models for Next Generation HPC Systems (Jens Breitbart, 2013)

On the Benefits of Abstraction in Concurrent Haskell (Michael Lesniak, 2012)

Heutzutage haben selbst durchschnittliche Computersysteme mehrere unabhängige Recheneinheiten (Kerne). Wird ein rechenintensives Problem in mehrere Teilberechnungen unterteilt, können diese parallel und damit schneller verarbeitet werden. Obwohl die Entwicklung paralleler Programme mittels Abstraktionen vereinfacht werden kann, ist es selbst für Experten anspruchsvoll, effiziente und korrekte Programme zu schreiben. Während traditionelle Programmiersprachen auf einem eher geringen Abstraktionsniveau arbeiten, bieten funktionale Programmiersprachen wie z.B. Haskell, Möglichkeiten zur fortgeschrittenen Abstrahierung.

Das Ziel der vorliegenden Dissertation war es, zu untersuchen, wie gut verschiedene Arten der Abstraktion das Programmieren mit Concurrent Haskell unterstützen. Concurrent Haskell ist eine Bibliothek für Haskell, die parallele Programmierung auf Systemen mit gemeinsamem Speicher ermöglicht. Im Mittelpunkt der Dissertation standen zwei Forschungsfragen. Erstens wurden verschiedene Synchronisierungsansätze verglichen, die sich in ihrem Abstraktionsgrad unterscheiden. Zweitens wurde untersucht, wie Abstraktionen verwendet werden können, um die Komplexität der Parallelisierung vor dem Entwickler zu verbergen.

   

 

 

A User-Centric Perspective on Parallel Programming with Focus on OpenMP (Michael Süß, 2007)