Home | english  | Impressum | Sitemap | KIT

Erzeugung von Entwicklerhinweisen zur Codeoptimierung für parallelisierende Compiler

Erzeugung von Entwicklerhinweisen zur Codeoptimierung für parallelisierende Compiler
Typ:Bachelorarbeit, Masterarbeit (offen)
Betreuer:

M.Sc. Marc Aurel Kiefer

Zusatzfeld:

offen 

Problemstellung:

Das Laufzeitverhalten von Programmen wird normalerweise durch Messen der tatsächlichen Ausführungszeit ermittelt. Das Problem dabei ist, dass die Laufzeit erheblich von der Eingabe des Programmes abhängig sein kann und man auch möglichst viele verschiedene Eingaben benötigt um ein Bild davon zu bekommen wie sich das Programm in Bezug auf die Laufzeit verhält. Statische Methoden zur Performanzabschätzung basieren auf einem Modell mit Kosten für einzelne Befehle/Instruktionen. Diese haben aber Probleme herauszufinden, welche Pfade im Programm gewählt werden und wie oft Schleifen tatsächlich durchlaufen werden.

Ziel:

Das Ziel der Arbeit ist die Erzeugung von Hinweisen für den Entwickler wo das Problem in seinem Code liegt und was er tun muss, damit der Code automatisch parallelisierbar wird.
Dazu ist es nötig die Parallelisierungsmodule von Clang zu analysieren, um die Einschränkungen zu finden, die eine automatische Parallelisierung verhindern.
Daraus sollen dann Handlungsempfehlungen für Entwickler generiert werden, die es dem Compiler erleichtern, den Code zu parallelisieren.

Voraussetzungen:

  • Gute C++ Fähigkeiten
  • Bereitschaft dich tiefer mit LLVM und Clang zu beschäftigen
  • Compilerbau Kenntnisse von Vorteil

Die Arbeit ist als Masterarbeit ausgelegt, kann aber in abgespeckter Form auch als Bachelorarbeit vergeben werden.