Lehr, Jan PatrickJan PatrickLehrBischof, ChristianChristianBischofDewald, FlorianFlorianDewaldMantel, HeikoHeikoMantelNorouzi, MohammadMohammadNorouziWolf, Felix A.Felix A.Wolf2022-10-182022-10-182021-08-09ACM International Conference Proceeding Series: 1-10 (2021-08-09)http://hdl.handle.net/11420/13798The size and complexity of high-performance computing applications present a serious challenge to manual reasoning about program behavior. The vastness and diversity of code bases often break automatic analysis tools, which could otherwise be used. As a consequence, developers resort to mini-apps, i.e., trimmed-down proxies of the original programs that retain key performance characteristics. Unfortunately, their construction is difficult and time consuming and prevents their mass production. In this paper, we propose a systematic and tool-supported approach to extract mini-apps from large-scale applications that reduces the manual effort needed to create them. Our approach covers the stages kernel identification, data capture, code extraction and representativeness validation. We demonstrate it using an astrophysics simulation with ≈ 8.5 million lines of code and extract a mini-app with only ≈ 1, 100 lines of code. For the mini-app, we evaluate the reduction of code complexity and execution similarity, and show how it enables the tool-supported discovery of unexploited parallelization opportunities, reducing the simulation's runtime significantly.enInformatikTool-supported mini-app extraction to facilitate program analysis and parallelizationConference Paper10.1145/3472456.3472521Other