nw  

Euclid Pipelines Powered By Luigi

Zusammenfassung

Pipeline Workflow Management System basierend auf Spotify's Luigi

Schlüsselbegriffe

Dataflow Graphen, Workflow/Dataflow Management Systeme, Python, Software Design

Zielsetzung

Das Ziel dieser Arbeit ist das Design und die Implementierung eines auf Luigi basierenden Pipeline Workflow Management Systems für Euclid.

Ausgangslage

Euclid ist ein Forschungs-Satellit der European Space Agency (ESA), der im Jahr 2020 zur Erforschung von dunkler Materie und dunkler Energie ins All geschickt werden soll. Dabei fallen riesige Datenmengen an, welche in verschiedenen Europäischen Rechenzentren verarbeitet werden. An der FHNW arbeiten wir seit mehreren Jahren an der Infrastruktur, die fürs Managen der Verarbeitungspipelines sowie fürs Verteilen der Verarbeitungsjobs zuständig ist.

In den letzten Jahren ist mit Luigi (https://github.com/spotify/luigi) ein schlankes Workflow Management System entwickelt worden und weiter aktiv entwickelt wird, welches u.a. durch dessen Verwendung beim Musik-Streaming-Dienst Spotify bekannt geworden ist. Dieses könnte sich auch für den Einsatz in Euclid eignen. Unter anderem könnte sich dessen Verwendung auch aus Software Stability und Maintenance Überlegungen als grosser Gewinn für Euclid erweisen.

Ergebnisse

Wir haben einen Prototypen erfolgreich implementiert, der die in Euclid verwendenten Pipeline-Spezifikationen in eine für Luigi verständliche Form bringt. Die entwickelte Übersetzungskomponente verwendet einen von der Euclid-Komponente erzeugten statischen Datenflussgraphen und gibt Python-Code aus, den Luigi verarbeiten kann. Unsere Lösung unterstützt sämtliche in Euclid erforderlichen Datenfluss Patterns (sequentiell, parallel und verchachtelt parallel). Der Proof-of-Concept ist nahtlos integriert, was bedeutet, dass kein Aufwand für die Anpassung von Schnittstellen anderer Systeme notwendig ist. Wir haben die bestehende Abstraktionsschicht genutzt, um einen einheitlichen Zugriff auf die verschiedenen unterstützten Compute Queue Backends zu ermöglichen und eine Integration in Luigi-Pipelines sicherzustellen. Wir haben gezeigt, dass das System auch bei starkem Parallelbetrieb gut skalierbart.


Visualisierung der Ausführung einer "parallel-split" Pipeline im Luigi Central Scheduler.





Projektdaten
Projektart Projektarbeit 5. Semester
Projektdauer 1.5 Semester
Aufwand in Personenstunden 360 Personenstunden (180h pro Person)
Teamgrösse 2 Personen
Auftraggeber

Institut für Data Science
Fachhochschule Nordwestschweiz
Bahnhofsstrasse 6
5210 Windisch
https://www.fhnw.ch/de/die-fhnw/hochschulen/ht/institute/institut-fuer-data-science

Projektteam

Christoph Christen
Student Informatik (berufsbegleitend)
6. Semester


Fabian Geisseler
Student Informatik (berufsbegleitend)
6. Semester

Kontakt

Prof. Dr. Martin Melchior
martin.melchior@fhnw.ch


Simon Marcin
simon.marcin@fhnw.ch

<< zurück