HOME | ENGLISH | IMPRESSUM | KIT

Bachelorarbeit (abgeschlossen): Autotuning für Benchmarks

Für Compilerbauer ist ein Performance-Benchmark in der finalen Evaluation ein Muss. Allerdings ist Benchmarken auf modernen Architekturen und Betriebssystemen gar nicht so einfach, da viele Störfaktoren die Messungen verzerren. Es gibt verschiedene Ansätze den Einfluss der Störfaktoren zu reduzieren:

  • Abschalten des Turbo-Modes der CPU
  • Setzen des CPU-Governors auf Performance
  • Aufheizen des Systems vor einem Benchmark, sodass die Starttemperatur für jeden Benchmarking-Lauf vergleichbar ist

Solche Tipps finden sich auf der Website von z.B. LLVM. Das Problem dabei ist, dass es sich hierbei nur um Tipps handelt, welche nicht mit Daten unterfüttert werden. Außerdem haben erste Messungen gezeigt, dass es nicht immer von Vorteil ist z.B. den Turbo-Mode der CPU auszuschalten. Auch ASLR, das die Programmausführung eigentlich deterministischer machen soll, erhöht tatsächlich manchmal die Varianz, zumindest so lange Hyper-Threading aktiv ist.

Weil also der Einfluss von Tunables auf die Varianz von Benchmarks schlecht vorhersehbar ist, soll als neuer Ansatz versucht werden, eine sinnvolle Konfiguration automatisch zu erlernen.

Aufgabe:

  • Sammlung und Evaluation von Mechanismen zur Benchmark-Stabilisierung
  • Implementierung eines „Autotuners“, um gute Benchmark-Konfigurationen zu finden

Voraussetzungen

  • Erfahrung mit Linux und Python
  • Vorkenntnisse oder zumindest Interesse an Statistik
  • Geduld für längere Benchmarkings
  • Eigeninitiative, verschiedene Möglichkeiten zu erkunden

Schlüsselworte

benchmark,statistik,optimierung 

Veröffentlichungen

Veröffentlichung
Automatische Systemkonfiguration für reproduzierbare Benchmarks

Betreuer

Ehemalige Mitarbeiter
M.Sc. Johannes Bechberger

Studenten

Studenten
Jacques Marco Jung