dc.date.accessioned | 2019-01-08T12:52:42Z | |
dc.date.available | 2019-01-08T12:52:42Z | |
dc.date.issued | 2018-09-10 | |
dc.identifier | doi:10.17170/kobra-2018122577 | |
dc.identifier.uri | http://hdl.handle.net/123456789/11022 | |
dc.language.iso | ger | |
dc.rights | Namensnennung-Nicht-kommerziell 3.0 Deutschland | * |
dc.rights | Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 3.0 Deutschland | * |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-sa/3.0/de/ | * |
dc.subject | Fehlertoleranz | ger |
dc.subject | Elastizität | ger |
dc.subject | X10 | ger |
dc.subject | GLB | ger |
dc.subject.ddc | 004 | |
dc.title | Fehlertoleranz und Elastizität für ein Framework zur globalen Lastenbalancierung | ger |
dc.type | Dissertation | |
dcterms.abstract | 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.
In dieser Arbeit entwickeln wir einen Algorithmus zur Realisierung von Fehlertoleranz und Elastizität für Taskpools. Die Fehlertoleranz arbeitet auf Applikationsebene und repliziert relevante Daten regelmäßig in den Hauptspeicher eines anderen Rechenknotens. Werden neue Rechenressourcen zu einer laufenden Berechnung hinzugefügt, so werden die hinzugefügten Rechenressourcen über die Lastenbalancierung des Taskpools mit Arbeit versorgt. Zu diesem Algorithmus entwickeln wir mehrere Varianten.
Wir haben unseren Algorithmus und seine Varianten als wiederverwendbares Framework in der parallelen Programmiersprache X10 implementiert.
Die experimentelle Auswertung mit drei verschiedenen Benchmarks hat ergeben, dass unser Framework und seine Varianten einen Overhead gegenüber einer nicht-fehlertoleranten Implementierung zwischen 4,17% und 55,72% haben. Für die Wiederherstellung ausgefallener Rechenknotens sowie das elastische Hinzufügen neuer Knoten konnten wir keine messbaren Laufzeiteinbußen feststellen. | ger |
dcterms.abstract | The number of computational nodes in a HPC cluster rises constantly. In such systems fault tolerance gains importance since the probability of a permanent node failure increases.
Fault tolerance with respect to permanent node failures is typically achieved through checkpointing on system-level. Checkpointing on application-level may achieves execution time improvements. Its implementation is, however, time-consuming and error-prone. Applications that can tolerate permanent node failures are called fault-tolerant in this thesis.
In addition to fault tolerance, techniques to improve cluster utilization are a major topic of current research. The utilization can be improved through a dynamic redistribution of computational resources among application at runtime. For this, the applications must be able to remove resources from and add new resources to their computation at runtime. Applications supporting this feature are called elastic.
In this work, we develop an algorithm to provide fault tolerance and elasticity for task pools. It implements application-level fault tolerance and replicates relevant data of a node into the main memory of another. When new nodes are added to a running computation, they receive work through the load balancing mechanism of the underlying task pool.
We develop different variants of our algorithm. The algorithm is implemented as a reusable framework in the parallel programming language X10.
An experimental evaluation with three different benchmarks showed that our framework and its variants achieve an overhead between 4.17% and 55.72% compared to a non-fault-tolerant implementation. For the restore of failed nodes and the elastic addition of new nodes, experimental results show no measurable execution time losses. | eng |
dcterms.accessRights | open access | |
dcterms.alternative | Fault tolerance and Elasticity for a Global Load Balancing framework | eng |
dcterms.creator | Bungart, Marco | |
dcterms.dateAccepted | 2018-11-30 | |
dcterms.extent | xx, 135 Seiten | |
dc.contributor.corporatename | Kassel, Universität Kassel, Fachbereich Elektrotechnik / Informatik | |
dc.contributor.referee | Fohry, Claudia (Prof. Dr.) | |
dc.contributor.referee | Rauber, Thomas (Prof. Dr.) | |
dc.subject.swd | Fehlertoleranz | ger |
dc.subject.swd | Elastizität | ger |
dc.subject.swd | Supercomputer | ger |
dc.subject.swd | Framework <Informatik> | ger |
dc.subject.swd | Programmiersprache | ger |
dc.type.version | publishedVersion | |