Available Theses

Title Student(s) Supervisor Description
Python Frontend for Serverless Workflows 1 Juan Aznar details
Apollo-System Erweiterung und Automation 1 Thomas Fahringer details
Instrumentation, Monitoring, and Visualization of Edge-Cloud Applications 1 Thomas Fahringer details
Automatic Data Dependence Analysis for Simple C Programs 1 Thomas Fahringer details

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 Master 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 Instrumentation, Monitoring, and Visualization of Edge-Cloud Applications
Number of students 1
Language Englisch
Supervisors Thomas Fahringer
Description Port two existing applications or develop new applications to our own Edge-Cloud infrastructure at DPS. For this reason, you will have to read some papers which describe such applications or find them on the internet. The more realistic these applications the better. Next, you will have to implement an instrumentation, monitoring and analysis service under our Apollo (https://apollowf.github.io/) orchestration and runtime system for Edge-Cloud infrastructures. You will have to instrument the application and the runtime system for various parameters such as runtime, memory, transfer time, energy consumption, economic costs, etc. Then you have to port an existing or develop your own monitoring system that collects the performance data in a highly decentralized fashion. The monitoring data should be analyzed in real-time within a Dashboard to be developed for this purpose. The Askalon Visualization Diagrams (http://www.dps.uibk.ac.at/projects/askalon/visualization) or any other proper service can be used for this purpose. For this work, we should try to reuse as much software as possible. However, the result should be stable and sustainable as part of the Apollo system.
Tasks
  • Port two existing applications to the Edge-Cloud infrastructure with APOLLO (AFCL)
  • Develop or port an existing instrumentation service for applications and runtime system to the APOLLO system
  • Develop a scalable and highly decentralized monitoring service to collected instrumented data of the above applications
  • Develop Dashboard to visualize performance data for real-time visualization
  • Visualization could be done based on the Askalon Visualization Diagrams.
Theoretical skills
Practical skills Advanced Java programmer, Distributed Systems, Cloud systems, Docker, git and GitHub
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. The student will have the opportunity to work with a state-of-the-art Apollo Edge-Cloud infrastructure. The developed instrumentation and monitoring system 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 Automatic Data Dependence Analysis for Simple C Programs
Number of students 1
Language German or English
Supervisor Thomas Fahringer
Description We have developed a simple dependence testing tool for simple C programs. The goal of this project is to detect errors and fix them and to extend the data dependence ability. Among other the compiler of this tool should be extended for countable dependence testing which inserts code to instrument and monitor array subscript expressions which are written into a trace file. At the end of the execution of such programs, the trace file is analyzed and dependencies are determined based on the content of the trace file.
Next would be to include a new dependence tester, such as the polyhedral library and replace the existing dependence tester in the above mentioned tool with the objective to improve the accuracy of dependence testing.
Tasks
  • Understand the internals of the existing tool, test and debug where necessary.
  • Update the tool for countable dependence testing based on compiler technology.
  • Add the polyhedral dependence tester as a new dependence test to improve the accuracy of the dependence testing.
  • Visualization of results.
  • Development of a test suite and extensive testing.
Theoretical Skills data dependence analysis
compiler technology such as flex and bison
Practical Skills scripting language, C oder C++
Additonal Information