Available Theses

Title Student(s) Supervisor Description
Enactment engine to run individual serverless functions of a workflow on multiple FaaS systems 1 or 2 Sashko Ristov details
Interoperable and secure execution of function choreographies in a heterogenous edge-cloud continuum 1 or 2 Sashko Ristov details
Fault-tolerant execution of serverless functions across multiple FaaS systems 1 or 2 Sashko Ristov details
Parallelisierung von Programmen mit einfachem Parallelismus 1 Thomas Fahringer details
Automatische Analyse für Parallele Programme 1 Thomas Fahringer details
Betriebssystem Services und Visualisierung 1 Thomas Fahringer details
Online Betriebskosten- und Mietabrechnung 1 Thomas Fahringer details

Title Enactment engine to run individual serverless functions of a workflow on multiple FaaS systems
Number of students 1 or 2
Language English
Supervisors Sashko Ristov
Description Many public serverless FaaS systems allow the user to create a workflow of serverless functions. However, each individual language to describe such workflows have many limits. For example, limited runtime environment, cost model, capacity limits, etc. The goal of this bachelor thesis is to overcome these limits by building a system that will distribute individual functions of a function choreography (workflow of functions) on at least two different public FaaS providers (e.g. Google and Microsoft). The challenge is to solve function and data movement across multiple FaaS provider and consider moving data as a value or by reference (a trade-off between access time and data movement). The function choreography, i.e., the dependencies between functions and FaaS system where and how to run, is described with the AFCL language in YAML, which is developed by the DPS group.
Tasks
  • Compose a function choreography with the already developed API in Java
  • Execute the composed function choreography across multiple FaaS providers
  • Measure and profile the performance and cost
  • Evaluate the benefit (cost/performance/possibilities) of the developed system comparing to the appropriate workflow languages of used public FaaS providers.
Theoretical skills Distributed Systems, Cloud Computing, Serverless
Practical skills Java, SDK / API of public FaaS systems.
Additional information  Both the AFCL language schema (in YAML) and the API (in Java) to compose the function choreography are developed by the DPS group and will be provided to students.
Examples of serverless functions for data movement and distribution of functions between two other providers (AWS and IBM) can be also provided.

Title Interoperable and secure execution of function choreographies in a heterogenous edge-cloud continuum
Number of students 1 or 2
Language English
Supervisors Sashko Ristov
Description Edge devices have limited resources and the system has to offload the computing to a public cloud (serverless FaaS provider). However, according to the security policy, probably the whole communication outside of user premises should be encrypted (e.g. a serverless function that runs at the edge sends data to a function that runs in a public cloud provider). This requires huge development efforts to adapt the application (functions) to the new execution environment. The goal of this bachelor thesis is to abstract the composition of the workflow of serverless functions from the development of the functions themselves. Students will build a system that can run a function choreography (a workflow of serverless functions) in a multi-provider scenario by retaining the user constraints (security constraints and interoperability) without changing functions, but by introducing additional middleware functions.
The function choreography is described with the AFCL (Abstract Function Choreography Language) language in YAML, defined and developed by the DPS group.
Tasks
  • Compose a function choreography with our API at a high level of abstraction
  • Based on the execution plan, adapt the abstracted view of the function choreography to comply with the security and interoperability issues when a function choreography is executed across different public FaaS providers or outside of the user premises
  • Develop middleware serverless functions (encrypt / decrypt input – output) and interoperability functions (convert input / output types)
  • Update the workflow description by introducing the middleware functions
  • Run the updated function choreography across multiple public FaaS providers (Amazon, IBM, Google, or Microsoft)
  • Measure and profile the performance and cost trade-off of the additional middleware functions
  • Evaluate the benefit (cost/performance) of the system compared to the execution on a single FaaS system.
Theoretical skills Distributed Systems, Cloud Computing, Serverless, encryption
Practical skills Java, SDK / API of public FaaS systems.
Additional information  Both the AFCL language schema and the JAVA API to compose the function choreography are developed by the DPS group and will be provided to students.

Title Fault-tolerant execution of serverless functions across multiple FaaS systems
Number of students 1 or 2
Language English
Supervisors Sashko Ristov
Description The existing AFCL (Abstract Function Choreography Language) language developed by the DPS group provides the developer to define a function choreography (workflow of serverless functions) at high level of abstraction by focusing on parallelisation and data-flow between serverless functions. The goal of this bachelor thesis is to introduce fault-tolerance in the concept of serverless (and stateless) computing by developing fault-tolerant patterns, describe them with the AFCL language (using YAML) and extend the developed API by DPS to create the function choreography. Students will explore to run functions on multiple serverless FaaS providers (e.g. Amazon, IBM, Google, or Microsoft) to increase the level of fault-tolerance.
Tasks o    Extend the API for AFCL with fault-tolerance (e.g. try-catch, retry n times a function, periodical or event-based invocation, …)
o    Compose a function choreography with the extended API
o    Fault-tolerant execution of a function choreography across multiple FaaS providers
o    Measure and profile the execution
o    Evaluate the level of fault-tolerance of the developed system with the appropriate workflow languages of public providers.
Theoretical skills Distributed Systems, Cloud Computing, Serverless
Practical skills Java, SDK / API of public FaaS systems.
Additional information  Both the AFCL language schema and the API to compose the function choreography are developed by the DPS group and will be provided to students.

Title Parallelisierung von Programmen mit einfachem Parallelismus
Number of students 1
Language German
Supervisors Thomas Fahringer
Description Das Ziel dieser Arbeit ist die Parallelisierung von “embarrassingly” parallelen Programmen, wie z.B. geometrische Transformationen von Bildern, Mandelbrot Programm und eine Monte Carlo Methode. Diese Programme enthalten einfachen Parallelismus, der mit pthreads und OpenMP parallelisiert und auf einem am Institut verfügbaren Parallelrechner mit gemeinsamem Speicher ausgeführt werden soll.
Tasks
  • Serielle Entwicklung von mehreren kleineren Algorithmen (z.b.b geometri. Transformation von Bildern, Mandelbrotprogramm, Monte Carlo Methode)
  • Parallelisierung mit MPI und OpenMP.
  • Performance Messungen für unterschiedliche Eingabedaten und für verschiedene Prozessorzahlen mit einem Performance Tool, z.B. Tau
  • Visualisierung und Interpretation der Performance Messungen
  • einfache Komplexitätsanalyse für die parallelen und seriellen Programme
Theoretical skills einfaches Verständnis für Komplexitätsanalyse
Practical skills C, C++
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 zur Parallelisierung von Programmen
Practical skills scripting Sprache, C oder C++
Additional information

Title Betriebssystem Services und Visualisierung
Number of students 1
Language German
Supervisors Thomas Fahringer
Description Das Ziel dieser Arbeit ist die Entwicklung von einigen Standard-Services aus Betriebssysteme (z.B. Prozessscheduling, Deadlocks, Seitenersetzungsverfahren).
Es sollen beliebige Eingabedaten vom Benutzer eingegeben werden können, um die Services zu testen. Eine Visualisierung soll verschiedene Verfahren (z.B. Prozessscheduling) miteinander vergleichen.
Die Aufgabe kann auch als Web-Anwendung realisiert werden.
Tasks
  • Studieren von mehreren Betriebssystemalgorithmen, die in der Vorlesung vorgestellt worden sind.
  • Implementieren einer sinnvollen Schnittstelle für die Eingabedaten.
  • Visualisierung der Ergebnisse.
  • Eventuell als Web-Anwendung zu realisieren.
Theoretical skills Inhalt der Vorlesung Betriebssysteme
Practical skills  C, C++ oder Java
Additional information

Title Online Betriebskosten- und Mietabrechnung
Number of students 1
Language German
Supervisors Thomas Fahringer
Description Es soll eine automatische Betriebskosten- und Mietabrechnung für eine größere Zahl von Mietwohnungen implementiert werden. Dabei soll ein online Zugriff auf diverse Verbraucherpreisindexe durchgeführt werden, um eine etwaige Erhöhung der Miete automatisch zu melden und zu verrechnen. Das System soll gesichert werden, sodass nur durch autorisierte Personen Zugriff erfolgen kann. Die Daten sollen in einer Datenbank gesichert werden.
Tasks
  •  Online Webapplikation
  • Verrechnung von Mieten und Betriebskosten gegliedert in verschiedene Steuersätze
  • Online Zugriff auf Verbraucherpreisindexwerte
  • Speichern aller relevanten Daten in einer Datenbank
  • Sicherheitsmaßnahmen und -protokolle
  • Automatische Monitoren und Meldesystem
Skills Java or C++ or Scripting languages, security mechanisms
Additional information