Available Theses

Title Student(s) Supervisor Description
Advisor for renting virtual machines from various public cloud service providers 1 Sashko Ristov details
Visual management of client resources in cloud  1 Sashko Ristov details
Visualization of protocols in distributed systems for learning  1  Sashko Ristov  details
Monitoring system for memory page faults of virtualized memory in a data center  1 Sashko Ristov details
Experimente und Datenanalyse für Clouds
1 Thomas Fahringer 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
Parallel Numerical Recipes in OpenMP and OpenCL 1 Thomas Fahringer details
Online Betriebskosten- und Mietabrechnung 1 Thomas Fahringer details

Title Monitoring system for memory page faults of virtualized memory in a data center
Number of students 1
Language English
Supervisor Sashko Ristov
Description An operating system extends the working main memory by swapping out to the disk and swapping in the RAM memory pages that it needs. However, a page fault occurs if the operating system does not find the required memory page in the main memory, which is a costly operating. The goal of this thesis is to develop a monitoring system that will collect the page faults of guest operating system in each virtual machine of each server in a cluster and visualize to the system administrator. The main focus is to locate VMs with the highest page fault rate and increase the memory size in order to reduce the page faults and thus to improve the overall performance.
Tasks
  • Develop a daemon for each VM / server
  • Develop a centralized collector
  • Develop an application that will visualize the gathered data
Theoretical Skills Memory management, Operating system Linux
Practical Skills Java
Additonal Information

Title Advisor for renting virtual machines from various public cloud service providers
Number of students 1
Language English
Supervisor Sashko Ristov
Description Users can rent IaaS (Infrastructure as a service) resources organized as virtual machines from various public cloud service providers. All providers have various pricing scheme, virtual machine types, networking and so on, which makes the decision-making process where to host the user applications and services very difficult. The goal of this thesis is to develop an advisor that will collect the data about the prices from several cloud providers and to propose the most optimal resources according to the user requirements.
Tasks
  • Develop a crawler that will collect the data from cloud service providers
  • Develop an application that will visualize the gathered data
  • Develop an algorithm that will propose the optimal resources from all offers
Theoretical Skills Some optimization techniques
Practical Skills Web development
Additonal Information

Title Visual management of client resources in cloud
Number of students 1
Language English
Supervisor Sashko Ristov
Description Public cloud service providers or open source cloud framework offer APIs for advanced software developers to dynamically manage and maintain the user resources in the cloud. On the other side, a graphical user interface exists for non-technical users, which can be used for simple administrative issues with limited scaling. The goal of this thesis is to develop a drag-and-drop based GUI that can allow the user to graphically design the required resources and then submit a single request to the cloud to provide those resources organized as defined by the user. For example, a user can specify the number and type of virtual machines, their interconnections and security rules.
Tasks
  • Develop a GUI to design a network of virtual machines and access lists
  • Develop interfaces for cloud APIs (Amazon EC2 or OpenStack)
  • Management of user resources in Cloud
Theoretical Skills Familiar with APIs, programming graphical interface
Practical Skills Java, Web development
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 German
Supervisors Thomas Fahringer
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 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 3 einfachen Codes (z.b.b geometri. Transformation von Bildern, Mandelbrotprogramm, Monte Carlo Methode)
  • Parallelisierung mit pthreads 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 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.

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