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
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: |
|
||||
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: |
View Item |