TU Darmstadt / ULB / TUbiblio

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
Dissertation, Erstveröffentlichung, Verlagsversion

Kurzbeschreibung (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.

Typ des Eintrags: Dissertation
Erschienen: 2022
Autor(en): Lehr, Jan-Patrick
Art des Eintrags: Erstveröffentlichung
Titel: From Valid Measurements to Valid Mini-Apps
Sprache: Englisch
Referenten: Bischof, Prof. Dr. Christian ; Schulz, Prof. Dr. Martin ; Chandrasekaran, Prof. PhD. Sunita
Publikationsjahr: 2022
Ort: Darmstadt
Kollation: viii, 139 Seiten
Datum der mündlichen Prüfung: 3 September 2021
DOI: 10.26083/tuprints-00020943
URL / URN: https://tuprints.ulb.tu-darmstadt.de/20943
Kurzbeschreibung (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.

Alternatives oder übersetztes Abstract:
Alternatives AbstractSprache

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 %.

Deutsch
Status: Verlagsversion
URN: urn:nbn:de:tuda-tuprints-209439
Sachgruppe der Dewey Dezimalklassifikatin (DDC): 000 Allgemeines, Informatik, Informationswissenschaft > 004 Informatik
Fachbereich(e)/-gebiet(e): 20 Fachbereich Informatik
20 Fachbereich Informatik > Scientific Computing
Hinterlegungsdatum: 30 Mär 2022 13:48
Letzte Änderung: 31 Mär 2022 07:55
PPN:
Referenten: Bischof, Prof. Dr. Christian ; Schulz, Prof. Dr. Martin ; Chandrasekaran, Prof. PhD. Sunita
Datum der mündlichen Prüfung / Verteidigung / mdl. Prüfung: 3 September 2021
Export:
Suche nach Titel in: TUfind oder in Google
Frage zum Eintrag Frage zum Eintrag

Optionen (nur für Redakteure)
Redaktionelle Details anzeigen Redaktionelle Details anzeigen