Kurzfassung

Hauptspeicherzentrische spaltenorientierte Datenbankmanagementsysteme nutzen leichtgewichtige Kompression zur Beschleunigung der Anfrageverarbeitung. Viele dieser Kompressionsverfahren können durch die Anwendung von SIMD-Instruktionen beschleunigt werden. Neben der Performanz ist jedoch auch die Energieeffizienz ein immer wichtiger werdendes Optimierungskriterium. Die Vielzahl an Konfigurations-möglichkeiten moderner Prozessoren bietet hierfür einen großen Spielraum. Ziel dieser Arbeit ist es, zu untersuchen, welchen Einfluss die Nutzung von SIMD-Instruktionen in heterogenen Multiprozessoren auf die Energieeffizienz und das Verhältnis zwischen Performance und Energieeffizienz hat. Hierfür sollen mindestens drei verschiedene Kompressionsalgorithmen parallelisiert, implementiert und ausgewertet werden.

Ausgangssituation

Die Bedeutung von hauptspeicherzentrischen spaltenorientierten Datenbankmanagementsystemen steigt zunehmend sowohl im wissenschaftlichen als auch im kommerziellen Kontext. Diese Systeme nutzen in der Regel leichtgewichtige Kompressionsverfahren wie beispielsweise Null Suppression, Run Length Encoding oder Dictionary Coding zur Performanz-Steigerung. Viele dieser Kompressionsverfahren können durch die Anwendung von SIMD-Instruktionen (Single Instruction Multiple Data) beschleunigt werden.

Neben der Performanz gewinnt die Energieeffizienz im Bereich der Datenbanksysteme zunehmend an Bedeutung. Diese wird oftmals auf Kosten der Performanz erreicht. Ein Ansatz um den beiden Optimierungszielen gerecht zu werden, ist die Anwendung einer Energy-Control-Loop, die für eine benötigte Performanz die entsprechend energieeffizienteste Hardware-Konfiguration auswählt. Diese Auswahl erfolgt mit Hilfe von Work-Energy-Profilen, die Performanz und Energieeffizienz für das gewählte System und den Anwendungsfall aufeinander abbilden.

Für leichtgewichtige Kompressionsverfahren auf heterogenen Multicoreprozessoren existieren bisher weder Work-Energy-Profile noch Erkenntnisse zum Einfluss von SIMD-Instruktionen auf diese Profile. Vorangegangene Arbeiten haben das Speicherzugriffsmuster einer Operation als ausschlaggebend für die Charakteristik eines Profils identifiziert. Die Vermutung liegt nahe, dass dies auch für die Kompression zutrifft.

Aufgabenstellung

Die Aufgabenstellung der Belegarbeit besteht darin, zu untersuchen, welchen Einfluss die Anwendung von SIMD-Instruktionen in modernen heterogenen Multicoreprozessoren auf die Work-Energy-Profile verschiedener leichtgewichtiger Kompressionsalgorithmen hat. Dafür ist folgendes zu leisten:

  • Einarbeitung in (i) ARM-NEON-Umsetzung von SIMD-Instruktionen, (ii) leichtgewichtige Kompressionsalgorithmen sowie (iii) Work-Energy-Profile
  • Implementierung und Dokumentation verschiedener leicht-gewichtiger Kompressionsalgorithmen mit Hilfe von ARM-NEON-Instruktionen
  • Parallelisierung der implementierten Algorithmen auf mehrere Kerne. Die Anzahl und Art der zu nutzenden CPUs soll frei wählbar sein.
  • Erstellen und Auswerten von Work-Energy-Profilen für die gewählten Algorithmen
  • Schlussfolgerungen zur Anwendbarkeit der Profile in der Energy-Control-Loop

Als Hardware steht ein Odroid-XU3 zur Verfügung. Dieser verfügt über Sensoren zur Messung von Spannung und Stromstärke und soll zum Erstellen der Work-Energy-Profile genutzt werden.

Die Implementierung soll in C/C++ und der Einfachheit halber freistehend, d.h. außerhalb eines existierenden Datenbankmanagement-systems, erfolgen.  So kann ausgeschlossen werden, dass nicht transparente oder konkurrierende Vorgänge im Datenbanksystem die Messwerte beeinflussen.