Titelaufnahme

Titel
Analysis, Modeling and Optimization of Execution Time and Energy for Parallel Programs
VerfasserGschwandtner, Philipp
Betreuer / BetreuerinFahringer, Thomas
Erschienen2017
HochschulschriftInnsbruck, Univ., Diss., 2017
Anmerkung
Arbeit an der Bibliothek noch nicht eingelangt - Daten nicht geprüft
Datum der AbgabeFebruar 2017
SpracheEnglisch
DokumenttypDissertation
Schlagwörter (DE)analyse / modellierung / optimierung / laufzeit / energie / parallele programme / autotuning / compiler / insieme
Schlagwörter (EN)performance / measurement / analysis / energy / modeling / optimization / compilers / insieme / autotuning
Zugriffsbeschränkung
 Das Dokument ist ausschließlich in gedruckter Form in der Bibliothek vorhanden.
Links
Nachweis
Klassifikation
Zusammenfassung (Deutsch)

Traditionell wurde bei der Optimierung von parallelen Programmen im Bereich Hochleistungsrechnen (high performance computing HPC) immer Laufzeit als das wichtigste Ziel erachtet. Elektrische Leistungsgrenzen und das daraus folgende Aufkommen von Mehrkernprozessoren forderten jedoch ein Umdenken in der Wissenschaft und Industrie hin zu zusätzlichen Optimierungszielen wie Energieverbrauch, Leistungsaufnahme oder thermische Limits. Bei der Entwicklung schnellerer Hardware oder Software legen diese Aspekte heutzutage oft die Grenzen fest.

Im Gegensatz zu einem Großteil der Literatur, welcher sich mit Hardwaredesign, Scheduling oder Ressourcenmanagement beschäftigt, untersucht diese Arbeit mehrere nicht-funktionale Parameter wie Laufzeit und Energie aus der Perspektive eines Compilers. Es werden drei Anwendungsfälle unter Beachtung der speziellen Fähigkeiten eines Compilers betrachtet. Erstens untersuchen wir drei nicht-funktionale Parameter im Kontext von multikriteriellem Autotuning. Zweitens analysieren wir das Konzept von Codesignifikanz und wie diese zur Energieoptimierung der Ausführung von Programmen auf unzuverlässiger Hardware eingesetzt werden kann. Drittens prüfen wir die Vorteile des compilerunterstützten Modellierens von Energie und Laufzeit in Hinblick auf Overheadreduktion.

Um diese drei offenen Forschungsziele zu untersuchen, wird in dieser Dissertation ein Hardware- und Softwaremodell erstellt und mit Schlüsseleigenschaften erweitert. Dieses Modell wurde im Insieme Compiler Framework implementiert und unterstützt die automatische Identifikation von Coderegionen, die Spezifikation von Schlüsseleigenschaften und ist erweiterbar durch zusätzliche Aspekte wie benutzerdefinierte Metriken.

Zusammenfassung (Englisch)

Traditionally, high performance computing (HPC) considered execution time as the most important objective for optimizing parallel programs. However, the power wall and also the subsequent rise of multi- and many-core designs forced the scientific community and industry to shift their focus towards additional concerns, such as energy consumption, power consumption or thermal budgets. Nowadays, these concerns often pose the limiting factor when designing faster hardware or optimizing software.

Contrary to much related work in this field, targeting hardware design, scheduling, or resource management, the research presented in this thesis investigates several non-functional parameters (including execution time and energy consumption) from a compiler perspective. Employing the unique capabilities of a compiler, it tackles three research use cases. First, we examine the conflicting nature of three non-functional parameters in the context of multi-objective auto-tuning. Second, we investigate the concept of code significance and how it can be leveraged to drive program execution on unreliable hardware in order to reduce energy consumption. Third, we discuss the benefits of compiler-assisted predictive models with regard to overhead reduction.

To investigate these open research problems, a hardware and software model suitable for compilers is established in this doctoral thesis, enriched with key properties with respect to the aforementioned tasks. Implemented and integrated into the Insieme compiler and runtime system framework, it supports the automatic identification of target code regions, enables the specification of key properties, extensible by additional concepts such as user-defined metrics.