Available Theses

Title Student(s) Supervisor Description
Apollo-System Erweiterung und Automation 1 Thomas Fahringer details
Exploring the impact of External Thread Pinning on Commercial Game Performance 1 Peter Thoman details
Vektorisierung mit OpenMP 1 Thomas Fahringer details
Automatische Analyse für Parallele Programme 1 Thomas Fahringer details

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 Exploring the impact of External Thread Pinning on Commercial Game Performance
Number of students 1
Language English
Supervisors Peter Thoman
Description The goal of this thesis is developing a tool for external thread pinning of processes on the Windows operating system. It should allow for various pinning configurations which take into account the number and type of threads spawned by the application, and largely automate the process. This tool should then be leveraged to explore and document the impact of various thread pinning configurations on the performance of commercial games, as they offer a broad and diverse set of parallelization and communication patterns.
Tasks
  • Planning of the external thread pinning tool design and approach — including studying related Windows APIs as required
  • Development and initial testing of the tool
  • Automated performance measurement across a broad set of games and analysis of the results
  • Interpretation and categorization of the results, including developing a set of “best practices” if justified by the results
Theoretical skills Parallel Computing
Practical skills C/C++, Threading, Windows API (can be studied as part of the thesis if necessary)
Additional information For development, ownership of some games is required.

Title Vektorisierung mit OpenMP
Number of students 1
Language German or English
Supervisors Thomas Fahringer
Description Das Ziel dieser Arbeit die Anwendung verschiedener OpenMP Konstrukte zur Vektorisierung von Programmen um SIMD Parallelismus zu nutzen. Zu diesem Zweck werden verschiedene Programme mit OpenMP erweitert, für verschiedene Problemgrößen auf verschiedenen Shared Memory Rechnern getestet und eine Performance Analyse durchgeführt, um die Auswirkung auf die Performance der Programme zu ermitteln.
Tasks
  • Anwenden von verschiedenen OpenMP Konstrukten für die Vektorisierung auf mehrere Programme
  • Performance Messung und Analyse der Vektorisierungsstrategien auf verschiedenen Shared Memory Parallelrechnern
Theoretical skills Datenabhängigkeitsanalyse, Komplexitätsanalyse
Practical skills C/C++ und parallele Programmierung mit OpenMP
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 im Bereich Parallelisierung von Programmen und Compilerbau (z.b. Flex und Bison)
Practical skills scripting Sprache, C oder C++
Additional information