TU Darmstadt / ULB / TUprints

From Valid Measurements to Valid Mini-Apps

Lehr, Jan-Patrick (2022)
From Valid Measurements to Valid Mini-Apps.
Technische Universität Darmstadt
doi: 10.26083/tuprints-00020943
Ph.D. Thesis, Primary publication, Publisher's Version

[img] Text
20220317-JPLehr-Dissertation.pdf
Copyright Information: CC BY-ND 4.0 International - Creative Commons, Attribution NoDerivs.

Download (2MB)
Item Type: Ph.D. Thesis
Type of entry: Primary publication
Title: From Valid Measurements to Valid Mini-Apps
Language: English
Referees: Bischof, Prof. Dr. Christian ; Schulz, Prof. Dr. Martin ; Chandrasekaran, Prof. PhD. Sunita
Date: 2022
Place of Publication: Darmstadt
Collation: viii, 139 Seiten
Date of oral examination: 3 September 2021
DOI: 10.26083/tuprints-00020943
Abstract:

In high-performance computing, performance analysis, tuning, and exploration are relevant throughout the life cycle of an application. State-of-the-art tools provide capable measurement infrastructure, but they lack automation of repetitive tasks, such as iterative measurement-overhead reduction, or tool support for challenging and time-consuming tasks, e.g., mini-app creation. In this thesis, we address this situation with (a) a comparative study on overheads introduced by different tools, (b) the tool PIRA for automatic instrumentation refinement, and (c) a tool-supported approach for mini-app extraction. In particular, we present PIRA for automatic iterative performance measurement refinement. It performs whole-program analysis using both source-code and runtime information to heuristically determine where in the target application measurement hooks should be placed for a low-overhead assessment. At the moment, PIRA offers a runtime heuristic to identify compute-intensive parts, a performance-model heuristic to identify scalability limitations, and a load imbalance detection heuristic. In our experiments, PIRA compared to Score-P’s built-in filtering significantly reduces the runtime overhead in 13 out of 15 benchmark cases and typically introduces a slowdown of < 10 %. To provide PIRA with the required infrastructure, we develop MetaCG — an extendable lightweight whole-program call-graph library for C/C++. The library offers a compiler-agnostic call-graph (CG) representation, a Clang-based tool to construct a target’s CG, and a tool to validate the structure of the MetaCG. In addition to its use in PIRA, we show that whole-program CG analysis reduces the number of allocation to track by the memory tracking sanitizer TypeART by up to a factor of 2,350×. Finally, we combine the presented tools and develop a tool-supported approach to (a) identify, and (b) extract relevant application regions into representative mini-apps. Therefore, we present a novel Clang-based source-to-source translator and a type-safe checkpoint-restart (CPR) interface as a common interface to existing MPI-parallel CPR libraries. We evaluate the approach by extracting a mini-app of only 1,100 lines of code from an 8.5 million lines of code application. The mini-app is subsequently analyzed, and maintains the significant characteristics of the original application’s behavior. It is then used for tool-supported parallelization, which led to a speed-up of 35 %. The software presented in this thesis is available at https://github.com/tudasc.

Alternative Abstract:
Alternative AbstractLanguage

Im Hochleistungsrechnen sind Leistungsanalyse, –optimierung und –exploration während des gesamten Lebenszyklus einer Anwendung relevant. Aktuelle Werkzeuge bieten zwar eine leistungsfähige Messinfrastruktur, jedoch fehlt ihnen die Automatisierung sich wiederholender Aufgaben wie die iterative Reduzierung des Messaufwands oder die Werkzeugunterstützung für anspruchsvolle und zeitaufwändige Aufgaben, z.B. die Erstellung von Mini-Apps. In dieser Dissertation adressieren wir die Situation mit (a) einer vergleichenden Studie zu Overheads, die durch verschiedene Werkzeuge erzeugt werden, (b) dem Werkzeug PIRA zur automatischen Instrumentierungsverfeinerung und (c) einem werkzeuggestützten Ansatz zur Mini-App-Extraktion. Wir präsentieren PIRA zur automatischen iterativen Verfeinerung der Leistungsmessung. Es führt eine Analyse des gesamten Programms durch, wobei sowohl Quelltext- als auch Laufzeitinformationen verwendet werden, um heuristisch zu bestimmen, wo in der Zielanwendung Messhaken für eine Messung mit geringem Overhead platziert werden sollten. Derzeit bietet PIRA eine Laufzeit–, eine Leistungsmodell–, sowie eine Lastungleichgewichtsheuristik. In unseren Experimenten reduziert PIRA den Laufzeit-Overhead in 13 von 15 Testfällen erheblich und führt meist zu einer Verlangsamung von < 10 %. Um PIRA die nötige Infrastruktur bereitzustellen, entwickeln wir MetaCG — eine erweiterbare, leichtgewichtige Call-Graph-Bibliothek für C/C++. Sie bietet eine Compiler-agnostische Call-Graph (CG)-Darstellung, ein Clang-basiertes Werkzeug zum Konstruieren des CG sowie ein Werkzeug zum Validieren der Struktur des MetaCG. Zusätzlich zur Verwendung in PIRA zeigen wir, dass die CG-Analyse des Programms die Anzahl der durch das Werkzeug TypeART zu verfolgenden Allokationen um bis zu 2.350× reduziert. Abschließend kombinieren wir die Werkzeuge in einem werkzeuggestützten Ansatz, der relevante Anwendungsregionen identifiziert und in repräsentative Mini-Apps extrahiert. Dazu präsentieren wir einen neuen Clang-basierten Source-to-Source-Übersetzer und eine typsichere, vereinheitlichte Checkpoint-Restart (CPR)-Schnittstelle für bestehende Bibliotheken. Zur Evaluation extrahieren wir eine Mini-App mit nur 1.100 Codezeilen aus einer 8,5 Millionen Codezeilen großen Anwendung. Eine Analyse zeigt, dass die Mini-App einen Großteil des ursprünglichen Verhaltens beibehält. Anschließend wenden wir werkzeuggestützte Parallelisierung an und erzielen eine Beschleunigung von 35 %.

German
Status: Publisher's Version
URN: urn:nbn:de:tuda-tuprints-209439
Classification DDC: 000 Generalities, computers, information > 004 Computer science
Divisions: 20 Department of Computer Science > Scientific Computing
Date Deposited: 30 Mar 2022 13:48
Last Modified: 03 Aug 2022 10:54
URI: https://tuprints.ulb.tu-darmstadt.de/id/eprint/20943
PPN: 494261765
Export:
Actions (login required)
View Item View Item