Project Details
Projekt Print View

A Scalable, Massively-Parallel Runtime System with Predictable Performance

Subject Area Security and Dependability, Operating-, Communication- and Distributed Systems
Term from 2013 to 2017
Project identifier Deutsche Forschungsgemeinschaft (DFG) - Project number 132320961
 
Final Report Year 2018

Final Report Abstract

Am Fachgebiet CIT wurde mit Nephele und der Erweiterung Nephele Streaming für das Projekt Stratosphere eine massiv-parallele, fehlertolerante, verteilte Ausführungsumgebung zur skalierbaren Datenanalyse entwickelt, die sowohl zur Batch- als auch zur Datenstromverarbeitung verwendet werden kann. Das System basiert auf dem Datenfluss-Paradigma, so dass datenparallele Operatoren Daten auf verteilten Worker-prozessen transformieren und diese Transformationen mit Benutzerdefinierten Funktionen spezifiziert werden. Die Datenflusslaufzeit Nephele bildet dabei die Basis des Gesamtsystems Stratosphere. Weitere Teile des Projekts, etwa die deklarativen Programmierabstraktionen und automatische Planoptimierungen, bauen auf dieser Schicht auf. Nephele wurde ebenfalls als technischer Kern des aus Stratosphere hervorgegangenen Open Source Systems Apache Flink adoptiert und wird seitdem von einer aktiven Nutzerbasis kontinuierlich weiterentwickelt. Neben der Datenflusslaufzeit von Stratosphere/Flink wurden am Fachgebiet CIT Mechanismen entwickelt, um die Ausführung der Datenflusslaufzeit in Cloud- und Clusterumgebungen zu optimieren. Zu den Optimierungen für den Einsatz in der Cloud zählt beispielsweise ein Mechanismus zur Inferenz der zugrundeliegenden Netzwerktopologie, über die reservierte virtuelle Maschinen physisch verbunden sind. Passend dazu wurde ein Ansatz zur optimierten Platzierung von Operatoren in für moderne Datencenter typischen Netzwerktopologien entwickelt. Weiterhin werden Benutzer des Systems von mehreren am Fachgebiet entwickelten Mechanismen aktiv in der Auswahl der Ressourcen zur Ausführung ihrer Analyseprogramme unterstützt: neben Ansätzen zur Erkennung von Engpässen und zur Indikation des Fortschritts verteilter Datenflüsse wurde ein System zur automatischen Reservierung von Ressourcen für von Benutzern gegebenen Sollzeitpunkten entwickelt, das basierend auf vorangegangen Ausführungen das Skalierungsverhalten von Datenflussprogrammen modelliert. Außerdem wurden Mechanismen entwickelt, die zur Laufzeit die Einhaltung vorgegebener Performanceanforderungen überwachen und Reservierungen gegebenenfalls adaptiv anpassen, beispielweise abzielend auf bestimmte Ressourcenauslastungen bei der Batch-analyse oder vorgegebene Latenzgrenzen bei der Analyse von Datenströmen. Ebenfalls adaptiv wird die Verteilung von Daten sowie die Ausführungsreihenfolge von Programmen gesteuert. Die Daten und Worker-prozesse werden für wiederholt ausgeführte Analyseprogramme so platziert, dass die Eingabedaten möglichst lokal gelesen werden können. Die Ausführungsreihenfolge wird so gewählt, dass genau die nebenläufigen Programme sich Ressourcen teilen, die in der Vergangenheit in Kombination zu einer hohen Gesamtauslastung und geringen Interferenzen geführt haben. Neben diesen Ansätzen zur effizienten adaptiven Verwendung der vorhandenen Ressourcen wurden auch Methoden zur Erhöhung der Fehlertoleranz entwickelt. Beispielsweise wurde mit dem Ansatz Record Skipping ein Mechanismus umgesetzt, der die Ausführung toleranter gegen fehlerhafte Eingabedaten macht. Abschließend wurde speziell die Anwendungsdomäne Maschinelles Lernen untersucht. Einerseits wurde die Datenflusslaufzeit dahingehend erweitert durch zyklische Datenflussgraphen nativ iterative Programme zu unterstützen, andererseits wurden gezielt Methoden entwickelt, den sich kontinuierlich ändernden verteilten Zustand solcher Anwendungen des Maschinellen Lernens effizient zu verwalten.

Publications

 
 

Additional Information

Textvergrößerung und Kontrastanpassung