Available Theses

Title Student(s) Supervisor Description
Distributing High-Impact Scientific Workflows with Apollo 1 Juan Aznar details
Event-based Invocation of Workflow Applications on the Edge 1 Juan Aznar details
Detecting critical events on smart buildings using edge-cloud resources 1 Juan Aznar details
Grafische Oberfläche zum Erstellen von AFCL Workflows 1 Thomas Fahringer details
Python Frontend for Serverless Workflows 1 Juan Aznar details
Apollo-System Erweiterung und Automation 1 Thomas Fahringer details
Exploring the impact of External Thread Pinning on Commercial Game Performance 1 Peter Thoman details
Vektorisierung mit OpenMP 1 Thomas Fahringer details
Automatische Analyse für Parallele Programme 1 Thomas Fahringer details

Title Distributing High-Impact Scientific Workflows with Apollo
Number of students 1
Language English
Supervisors Juan Aznar
Description In this thesis, you should execute two to three real scientific workflows (WF) using the FaaS paradigm through the Apollo runtime system [1] and do research with real biological and experimental input datasets. For instance, the 1000genome [2] WF enables identifying genome mutations according to numerous population features for the later study of associated diseases. Another example is Cycles (CW) [3], which is one of the most environmental-friendly workflows. Basically, CW simulates agricultural experiments that enable scientists to evaluate the behavior of crops under different environmental conditions, protecting nature from unnecessary and damaging tests and promoting sustainable agriculture while saving vast amounts of time and resources.

[1] https://apollowf.github.io/learn.html
[2] https://github.com/wfcommons/pegasus-instances/tree/master/1000genome
[3] https://github.com/wfcommons/pegasus-instances/tree/master/cycles

Tasks
  • Port the tasks of different (two or three) scientific WFs onto an edge/cloud infrastructure and orchestrate them with Apollo in a distributed fashion.
  • Process and prepare experimental datasets to be used as WF input.
  • Study the performance (e.g., time, cost, memory and energy consumption) and scalability of the executed WF for different hardware settings (e.g., edge, cloud, both) and data input sizes.
  • Optimize the performance of the WF execution and explain performance behavior.
Theoretical skills Cloud computing, FaaS, Serverless
Practical skills Java, Python (Biopython, Pandas, Numpy), git, GitHub
Additional information

Title Event-based Invocation of Workflow Applications on the Edge
Number of students 1
Language English
Supervisors Juan Aznar
Description In this thesis you will execute realistic complex tasks and data processing as workflow applications [1] on an edge-cloud infrastructure. To this end, you should trigger the execution of workflows in Apollo [2] using event data in common format [3] (i.e., name, source, type, kind, correlation, dataOnly, and metadata fields), thus providing interoperability across services, platforms and systems. There is numerous event frameworks. In this thesis, you should systematically compare and then select based on the following requirements:
(i) runs on IoT, edge and cloud,
(ii) can be configured for arbitrary events,
(iii) scales for large events,
(iv) builds on cloud events standard [3], and
(v) is open-source.

[1] https://github.com/serverlessworkflow/
[2] https://apollowf.github.io/learn.html
[3] https://github.com/cloudevents/spec

Tasks
  • Rigorously study different event frameworks or platforms.
  • Create one or more workflows whose tasks will be orchestrated by Apollo in a distributed fashion. Optionally you can propose your own workflow application.
  • Integrate Apollo with your selected event infrastructure
  • Define a set of important events and invoke the above mentioned workflows
  • Stress the system with different amount of events and analyze the resulting performance.
Theoretical skills Cloud computing, Serverless, Docker
Practical skills Java, Python, git, GitHub, Raspberry Pi, Arduino, or any other IoT/Edge hardware
Additional information

Title Detecting critical events on smart buildings using edge-cloud resources
Number of students 1
Language English
Supervisors Juan Aznar
Description The goal of this bachelor thesis is to develop fully operational edge devices used to recognize critical events on smart buildings (SB), such as fire, smoke, water leakages, inadequate social distance, unmasked people, among others. Edge devices should be implemented by using commercial and low cost devices (e.g., Raspberry Pi [1]), (thermal) cameras, and Open-Source Machine Learning (ML) libraries [2]. The smart building should react immediately and act in consequence when undesired events occur. To this end, edge devices will be orchestrated by the Apollo system [3] to exploit parallelism, scalability, and load balancing.

[1] https://www.raspberrypi.com/
[2] https://opencv.org/
[3] https://apollowf.github.io/learn.html

Tasks
  • Use Raspberry Pi as an edge device and execute serverless functions.
  • Detection and recognize different critical events using a camera and open-source ML libraries.
  • Create one or more simple workflows (WF) whose tasks will be orchestrated by Apollo in a distributed fashion.
  • Deploy the designed WF to the edge cloud infrastructure mentioned above (Raspberry Pis and (thermal) cameras).
  • Study the performance and scalability of the proposed solution under different levels of stress on the SB (e.g., multiple fires, smoke and crowding at a time).
  • Extensively test with multiple data sets on various hardware settings.
Theoretical skills Cloud computing, Serverless, Machine Learning, Electronics
Practical skills Python, git, GitHub
Additional information

Title Grafische Oberfläche zum Erstellen von AFCL Workflows
Number of students 1
Language English or German
Supervisors Thomas Fahringer und Stefan Pedratscher
Description Das Ziel dieser Bachelorarbeit ist die Entwicklung einer grafischen Oberfläche zum Er-stellen von AFCL Workflows (Workflow Sprache der DPS Gruppe [1]). Die GUI soll das Erstellen der Workflows vereinfachen und eine Exportmöglichkeit in das AFCL YAML Format bieten. Zusätzlich soll ein Workflow durch die GUI zum Apollo Laufzeitsystem portiert werden.
Da die API zum generieren, validieren und parsen von AFCL Files in Java zur Verfü-gung gestellt wird [2], sollte die Oberfläche auch in Java implementiert werden. Ob es sich hierbei um eine Web-App oder Sonstiges bleibt den Studenten überlassen.

[1] https://apollowf.github.io/learn.html
[2] https://github.com/Apollo-AFCL/AFCLCore-AFCLv1.1

Tasks
  • Benutzerfreundliche GUI zum erstellen von AFCL (YAML) workflows.
  • Validierung der erstellten workflows.
  • Portierung einer Anwendung.
Theoretical skills Distributed Systems, Cloud Computing, Serverless, GUI
Practical skills Java
Additional information Both the AFCL language schema (in YAML) and the API (in Java) to compose the func-tion choreography are developed by the DPS group and will be provided to students.

Title Python Frontend for Serverless Workflows
Number of students 1
Language English
Supervisors Juan Aznar
Description Apollo (https://apollowf.github.io/) is the DPS research orchestration and runtime system for Edge-Cloud infrastructures. We are using AFCL (https://apollowf.github.io/learn.html) to describe serverless workflows for distributed applications. As part of this thesis, you will have to create a Python version for AFCL thus application developers can create Python programs to build workflows instead of using AFCL directly. Furthermore, you have to create a transformation system that automatically converts the Python programs into AFCL which is input to APOLLO.
Tasks
  • Create a Python specification that fully represents the AFCL language constructs thus all AFCL programs can also be represented by this Python specification. Every AFCL program thus should have a Python representation.
  • There are multiple solution paths to this problem, for instance, building a parser or a transformation system that converts the Python representation into AFCL. Other solutions may be possible as well.
  • Your solution should be modular and easy to extend in case of any changes to AFCL.
  • Convert at least 3 AFCL use cases into the Python representation.
Theoretical skills
Practical skills Advanced Python programmer, git and GitHub, JSON or YAML
Additional information It is not mandatory but of great help if you passed the lecture and PS on Verteilte Systeme in the computer science bachelor program.

This Bachelor Thesis will be supervised by Juan Aznar (IFI/DPS).

The student will have the opportunity to work with a state-of-the-art Apollo Edge-Cloud infrastructure. The developed Python frontend will be reused for international projects and published as open-source. Collaborative work in an international project is possible if the student is interested. In the best case this work can also be published and student can travel to conference and present his/her work.

Title Apollo-System Erweiterung und Automation
Number of students 1
Language Deutsch oder Englisch
Supervisors Thomas Fahringer
Description Das Apollo-System[1] wurde von der DPS Gruppe zur Ausführung von serverless Workflows entwickelt. Workflows werden dabei im AFCL Format dargestellt und portable gemacht. Das Ziel dieser Arbeit ist es den AFCLEditor[2] (ein Tool zum Erstellen von AFCL Workflows) zu erweitern und für alle AFCL Konstrukte zu validieren. Eine Grafische Visualisierung durch den Editor soll das Erstellen der Workflows vereinfachen. Zudem sollen im Workflow definierte Funktionen automatisch auf verschiedenen Cloud Providern deployed werden (eine semi-automatische starting-base wird hierbei zur Verfügung gestellt, siehe [3]). Das Apollo-System überwacht die Ausführungen der Funktionen und des kompletten Workflows. Diese Monitoring Daten sollen visualisiert werden.

[1] https://github.com/Apollo-Core
[2] https://github.com/Apollo-AFCL/AFCLEditor
[3] https://github.com/Apollo-Functions/FunctionTemplate

Tasks
  • AFCLEditor erweitern und testen
  • Grafische Visualisierung des AFCLEditors
  • Automatisches Deployment von Funktionen auf verschiedenen Cloud Providern
  • Visualisierung von Monitoring Daten des Apollo-Systems
Theoretical skills Cloud Computing, Serverless, AWS, IBM, Google, Azure, Alibaba
Practical skills Java, JetBrains MPS, Terraform, Docker
Additional information

Title Exploring the impact of External Thread Pinning on Commercial Game Performance
Number of students 1
Language English
Supervisors Peter Thoman
Description The goal of this thesis is developing a tool for external thread pinning of processes on the Windows operating system. It should allow for various pinning configurations which take into account the number and type of threads spawned by the application, and largely automate the process. This tool should then be leveraged to explore and document the impact of various thread pinning configurations on the performance of commercial games, as they offer a broad and diverse set of parallelization and communication patterns.
Tasks
  • Planning of the external thread pinning tool design and approach — including studying related Windows APIs as required
  • Development and initial testing of the tool
  • Automated performance measurement across a broad set of games and analysis of the results
  • Interpretation and categorization of the results, including developing a set of “best practices” if justified by the results
Theoretical skills Parallel Computing
Practical skills C/C++, Threading, Windows API (can be studied as part of the thesis if necessary)
Additional information For development, ownership of some games is required.

Title Vektorisierung mit OpenMP
Number of students 1
Language German or English
Supervisors Thomas Fahringer
Description Das Ziel dieser Arbeit die Anwendung verschiedener OpenMP Konstrukte zur Vektorisierung von Programmen um SIMD Parallelismus zu nutzen. Zu diesem Zweck werden verschiedene Programme mit OpenMP erweitert, für verschiedene Problemgrößen auf verschiedenen Shared Memory Rechnern getestet und eine Performance Analyse durchgeführt, um die Auswirkung auf die Performance der Programme zu ermitteln.
Tasks
  • Anwenden von verschiedenen OpenMP Konstrukten für die Vektorisierung auf mehrere Programme
  • Performance Messung und Analyse der Vektorisierungsstrategien auf verschiedenen Shared Memory Parallelrechnern
Theoretical skills Datenabhängigkeitsanalyse, Komplexitätsanalyse
Practical skills C/C++ und parallele Programmierung mit OpenMP
Additional information

 

Title Automatische Analyse für Parallele Programme
Number of students 1
Language German
Supervisors Thomas Fahringer
Description Das Ziel dieser Arbeit ist ein Werkzeug für die automatische Abhängigkeitsanalyse ausgehend von einer Eingabemaske für geschachtelte Schleifen. Die Abhängigkeitsanalyse soll für eine geschachtelte Schleife feststelle um welche Datenabhängigkeit es sich handelt (true, anti, output, input). Zusätzlich soll der Direction Vector und und die Distanz der Abhängigkeit angegeben werden. Daneben soll noch eine Prediction für die Anzahl der Cache Misses für das Schleifennest erstellt werden. Die Aufgabe kann mit einer beliebigen Programmiersprache entwickelt werden. Die zu untersuchenden Programme sollen C Programme sein.
Tasks
  • Studieren der Datenabhängigkeitsanalyse zur Feststellung ob eine Schleife parallel oder seriell ausgeführt werden kann bzw. muss.
  • Studieren eines vorgegebenen analytischen Algorithmus zur Abschätzung der Anzahl der Cache Misses für geschachtelte Schleifen.
  • Visualisierung der Ergebnisse.
  • Eingabeformat der zu analysierenden Codeteile soll entworfen werden.
Theoretical skills Datenabhängigkeitsanalyse (z.B. polyhedral library, omega test, etc.).
Vorkenntnisse im Bereich Parallelisierung von Programmen und Compilerbau (z.b. Flex und Bison)
Practical skills scripting Sprache, C oder C++
Additional information