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 Thomas Fahringer
Thanh-Phuong Pham
details
Edge Computing Scheduling 2 Thomas Fahringer
Thanh-Phuong Pham
 details
Bildverwaltung und -bearbeitung 1 Thomas Fahringer details
Visualization of protocols in distributed systems for learning  1 Sashko Ristov  details
Experimente und Datenanalyse für Clouds
1 Sashko Ristov details
Automatische Analyse für Parallele Programme 1 Thomas Fahringer details
Betriebssystem Services und Visualisierung 1 Thomas Fahringer details
Parallel Numerical Recipes in OpenMP and OpenCL 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 Thomas Fahringer, Assistant:  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 Bildverwaltung und -bearbeitung
Number of students 1
Language German
Supervisor Thomas Fahringer
Description Es soll ein Bild- und Videoverwaltungssystem entwickelt werden. Bilder sollen auch bearbeitet werden, Videos werden nur verwaltet. Zu jedem Bild und Video sollte es die Möglichkeit geben, Metadaten hinzuzufügen, z.B. GPS Daten, Datum der Aufnahme, Qualität und Wichtigkeit des Bildes, Top 100 Serie, etc.
Zu jedem Bild kann es mehrere Sourcen geben (z.B. Raw, JPG, etc). Bilder sollen in verschiedener Größe dargestellt werden können – auch mehr als 1 Bild pro Seite. Über eine Filteroption kann man die Source auswählen, markieren ob ein Bild und alle dazugehörigen Sourcen gelöscht werden, Markieren für Top 100, etc.
Ein Programm soll die Bilder im Bezug auf Objekte analysieren. Die gefundenen Objekte sollen mit Namen versehen werden können.
Bild- und eventuell Videodatenbanken sollen angewählt werden können um vorher selektieren Objekte zu finden.
Diashow von bestimmter Bildserie oder ausgewählte Objekte.
Automatisches Erkennen von unscharfen oder schlechten Bildern.
Tasks Standalone Anwendung mit Anbindung an Bilddatenbank. Fehlertoleranz und Sicherheitsmechanismen sollen integriert werden.
Entwicklung mit gängiger Programmiersprache. Open Source Datenbank.
Theoretical Skills Programmierung, Bildverarbeitung, Datenbanken
Practical Skills Programmierung, Bildverarbeitung, Datenbanken
Additonal Information

Title Visualization of protocols in distributed systems for learning
Number of students up to five (each student works separately on a specific module)
Language English
Supervisor Sashko Ristov
Description The goal of this thesis or group of theses is to develop a visual tool that can be used for learning protocols from distributed systems. It will create tasks for students and grade the student inputs. For example, possible protocols can be: DHT tables, vector clocks, fault tolerance, coordination, synchronization, epidemic protocols, naming, overlay networks, or consistency.
Tasks
  • Develop a visual tool that will present a protocol or technique
  • Develop an automatic generation of example
  • Develop an algorithm that will propose the question and grade studen answer
Theoretical Skills Distributed Systems Protocols
Practical Skills Web development, Java
Additonal Information

Title Experimente und Datenanalyse für Clouds
Number of students 1
Language English
Supervisors Sashko Ristov
Description Das Ziel dieser Arbeit ist die Durchführung einer Serie von Experimenten, um die Eigenschaften und Fähigkeiten von Cloud Infrastrukturen (z.B. Amazon EC2) zu evaluieren. Es werden dabei zahlreiche Virtual Machine Instanzen (VMs) für kleinere Programme getestet. Dabei werden die Zeiten für die VMs und die Programme gemessen und anschließend ausgewertet. Zu den gemessenen Zeiten gehören: Zeit bis eine VM zugewiesen und gestartet wird, Zeit für die Ausführung der Programme (mit Messung von Speicher und CPU Verbrauch), Zeit um die VM wieder freizugeben, uva. Es werden dabei eine große Zahl von Experimenten gestartet (Script Programm). VMs und Programme müssen vorher instrumentiert werden. Die gemessenen Daten müssen in einer Datenbank abgelegt und dann statistisch ausgewertet und visualisiert werden. Eine Besonderheit ist dabei die Berücksichtigung von Spot Instances, die besonders billig aber vom Cloud Provider jederzeit entzogen werden können. Um solche Spot VMs zu bekommen, muss ein sogenanntes Bieterverfahren implementiert werden. Das Ziel dieser Arbeit ist ein besseres Verständnis von Cloud Ressourcen für verschiedene Programme. Dabei soll der Trade-off zwischen Performance und Kosten genauer untersucht werden.
Tasks
  • Script Programm zum Instrumentieren von VMs und Programmen
  • Script Programm zum Lesen und Speichern von Messdaten in einer Datenbank
  • Implementieren eines Bieterverfahrens für Cloud Spot Instances
  • Ausführen von Experimenten auf einer realen Cloud Infrastruktur
  • Auswertung und Visualisierung der gemessenen Daten
Theoretical skills einfache Kenntnisse im Bereich der Statistik
Practical skills Script Sprache, Datenbanken, Visualisierung von Daten
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 Parallel Numerical Recipes in OpenMP and OpenCL
Number of students 1
Language English or German
Supervisors Thomas Fahringer
Description Hardware performance is usually benchmarked by executing programs stressing different computing units. Nowadays, in the multi- and many- core era, computational resources are composed of more and more cores/processing units, opening a new era for programmers, who must adapt their sequential codes for exploiting the performance offered by these new parallel architectures. In this sense, today’s programmers should not restrict themselves to CPU, but they also must target other architectures like GPU or co-processors (like Intel Phi). The purpose of this thesis is to implement a repository composed of several numerical recipes using OpenMP and OpenCL. This repository will be further used for benchmarking different parallel architectures. Additionally, comparisons between OpenMP and OpenCL implementations shuuld be provided.
Tasks
  • Study numerical receipts codes
  • Analyse dependences
  • Provide OpenMP and OpenCL implementations of the numerical receipts
  • Validate the parallel implementations
  • Benchmarking and comparing several architectures
Theoretical skills
Practical skills
Additional information Bibliography: Willian H. Press, Saul A. Teukolsky, William T. Vetterling and Brian P. Flannery. Numerical Recipes in C. Second Edition.