Available Theses

Title Student(s) Supervisor Description
Data flow in a serverless computing framework 1-2 Sashko Ristov, Thanh-Phuong Pham details
Parallelisierung von Programmen mit einfachem Parallelismus 1 Thomas Fahringer details
Fault tolerant and scalable cloud via serverless design patterns 1 or 2 Sashko Ristov, Thanh-Phuong Pham  details
Internet of Things (IoT) Real-Time Analytic 2 Thomas Fahringer
Thanh-Phuong Pham
details
Serverless Computing 2 Sashko Ristov,
Thanh-Phuong Pham
details
Edge Computing Scheduling 2 Thomas Fahringer
Thanh-Phuong Pham
 details
Automatische Analyse für Parallele Programme 1 Thomas Fahringer details
Betriebssystem Services und Visualisierung 1 Thomas Fahringer details

Title Data flow in a serverless computing framework
Number of students 1-2
Language English
Supervisors Sashko Ristov, Thanh-Phuong Pham
Description The goal of this bachelor thesis is to explore and learn the concept of serverless computing and develop a complex data flow for the complex applications with functions in different runtime environments and with different data sources (e.g. files, images, streams). Students can explore to install, configure and deploy several open source frameworks: e.g. Kubernetes (the container cluster), Docker (Container engine) and Fission and / or OpenWhisk (serverless framework).
Students can dive into each software in order to develop advance techniques, such as optimize resource utilization, scheduling algorithms and optimize data transfer and data distribution between functions.
Tasks
  • Configure and deploy a vertical stack of serverless computing framework
  • Model a complex serverless application with data flow patterns
  • Develop data flow patterns for composition of functions
  • Execute large-scale applications in the serverless computing platform
  • Measure and profile the performance
Theoretical skills Distributed Systems, Cloud Computing, Algorithms
Practical skills Kafka, Docker, Kubernetes, Fission / OpenWhisk, Java or Python
Additional information

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 Fault tolerant and scalable cloud via serverless design patterns
Number of students 2
Language English
Supervisor Sashko Ristov, Thanh-Phuong Pham
Description The goal of this bachelor thesis is to extend the concept of serverless computing and develop serverless design patterns such as: periodic invocation pattern, event-driven pattern, data transformation pattern, data streaming pattern, state machine pattern and bundled pattern.
Students can explore to install, configure and deploy several open source frameworks: e.g. Kubernetes (the container cluster), Docker (Container engine) and Fission and / or OpenWhisk (serverless framework).
Tasks
  • Configure and deploy a vertical stack of serverless computing framework
  • Develop a set of useful design patterns
  • Compose functions in the serverless computing platform using bundled pattern.
Theoretical Skills Distributed Systems, Cloud Computing, Algorithms
Practical Skills Docker, Kubernetes, Fission / OpenWhisk, Java or Python
Additonal Information

Title Internet of Things (IoT) Real-Time Analytic
Number of students 2
Language English
Supervisor Thomas Fahringer, Assistant:  Thanh-Phuong Pham
Description The widespread use of IoT devices has led to the development of many innovative applications. These applications usually require analyzing heterogeneous data streams and detecting complex patterns in near real-time. In this study, students will be equipped strong background about IoT such as IoT ecosystem concepts and architecture along with IoT data and knowledge management (Streaming processing and framework for distributed data analysis in IoT).
Tasks
  • Study popular open source tools for collecting, storing, processing data in real time (e.g. IPFS, Kafka, AmazonS3, MongoDB, Spark, etc).
  • Doing experiments with real-world data and applications. Students will develop their data analysis process and make prediction for IoT data.
  • Students might have chance to do experiments in commercial cloud such as Amazon EC2.
Theoretical Skills Distributed Systems and IoT
Practical Skills Scripts, Python, Java or Scala
Additonal Information

Title Serverless Computing
Number of students 2
Language English
Supervisor Sashko Ristov,  Thanh-Phuong Pham
Description Serverless computing has emerged as a new compelling paradigm for the deployment of applications and services. It represents an evolution of cloud programming models, abstractions, and platforms, and is wide adoption of cloud technologies. In this work, students will discover a lot of interesting concepts in the latest computing model. Students will have chance to study the serverless platform and dive into its implementation. Concretely, students will explore many open source of serverless computing platform such as: Fission, OpenWhisk, Snafu etc.
In addition, students will execute real world applications to one of the above mentioned platforms (students can freely evaluate and choose the platform). Further to this, students will do measuring or profiling performance of real world applications for further analysis. The profiling work is used to evaluate cost and performance corresponding with different size of resources for each application. This work can conduct to developing advanced techniques in serverless platform such as resource management and novel scheduling algorithms.
Tasks
  • develop a GUI application which can provide below functionalities:

Deploy serverless platform in kubernet.

Execute real world applications on the platform.

Measure useful information for the applications: performance, cost, etc.

  • Students might have chance to do experiments in commercial cloud such as Amazon EC2.
Theoretical Skills Distributed Systems (Cloud Computing).
Practical Skills Docker, Python, Java.
Additonal Information

Title Edge Computing Scheduling
Number of students 2
Language English
Supervisor Thomas Fahringer, Assistant:  Thanh-Phuong Pham
Description Internet of Things (IoT) will bring every smart device such as smart cameras, environmental sensors, home appliances and vehicles online in order to enhance quality of life, enable smart cities, and utilize computing resources everywhere. However, IoT introduces a lot of challenges for computing infrastructure as it requires the processing massive amounts of data in real time. In order to confront with the challenges, Fog or Edge computing paradigm has been proposed. In the Edge paradigm, data distribution and processing can be maintained closer to user, reducing network traffic and improving application response time.
Tasks
  •  Study the problem of resource allocation considering the hierarchical infrastructure composed of edge capacity, analyzing application classes along with different scheduling policies.
  •  Study many important concepts in distributed system field such as cloud computing, virtualization (full, para, os-level virtualization), container, fog and edge computing, etc.
  •  Study simulation tools such as iFogSim, EdgeCloudSim and doing experiments for testing and evaluating variety of IoT features.
  •  Students might have chance to do experiments with real IoT devices.
Theoretical Skills Virtualization, Fog or Edge Computing.
Practical Skills Docker, R and Java.
Additonal 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