Applicant
Dr. Valentin Churavy
Chair for High-Performance Scientific Computing
University of Augsburg
Project Overview
The Julia programming language [1] is increasingly used for more and more HPC projects [2,3]. The Trixi.jl [4,5] framework, developed by PI Schlottke-Lakemper, uses Julia to scale simulations to high core counts on high-performance infrastructure (Fig. 1a). Yet, we lack tools to understand the behavior and performance of Julia codes at these scales. In particular, the interaction between Julia and HPC file systems has been identified as a potential bottleneck for further scaling (Fig. 1b).
In this project, we aim to develop and further improve the integration between HPC profiling tools such as Extrae [7,8], HPCToolkit [9], Score-P [10], LIKWID [11], Intel VTune and Nvidia NSight, to facilitate the performance analysis of Julia programs at scale.
Our goal is to make existing HPC tools usable to optimize, analyze and gain insights into our Julia-based research software, for which we regularly have compute-time projects at European and national supercomputer centers (LUMI, HLRS, JSZ, LRZ and NHR systems).
References
1. Bezanson J, Edelman A, Karpinski S, Shah VB. Julia: A Fresh Approach to Numerical Computing. SIAM Rev. 2017;59: 65–98.
2. Churavy V, Godoy WF, Bauer C, Ranocha H, Schlottke-Lakemper M, Räss L, et al. Bridging HPC Communities through the Julia Programming Language. arXiv [cs.DC]. 2022. Available: https://arxiv.org/abs/2211.02740
3. Silvestri S, Wagner GL, Constantinou NC, Hill CN, Campin J-M, Souza AN, et al. A GPU-based ocean dynamical core for routine mesoscale-resolving climate simulations. Authorea Preprints. 2024 [cited 30 Jun 2024]. doi:10.22541/essoar.171708158.82342448/v1
4. Schlottke-Lakemper M, Gassner GJ, Ranocha H, Winters AR, Chan J. Trixi.jl. Zenodo; 2025. doi:10.5281/ZENODO.3996439
5. Adaptive numerical simulations with Trixi.jl: A case study of Julia for scientific computing. JuliaCon Proceedings. 2022;1: 77.
6. Hindenlang F, Gassner GJ, Altmann C, Beck A, Staudenmaier M, Munz C-D. Explicit discontinuous Galerkin methods for unsteady problems. Comput Fluids. 2012;61: 86–93.
7. Extrae. [cited 26 Feb 2025]. Available: https://tools.bsc.es/extrae
8. Extrae.jl: Julia bindings for extrae Basic API. Github; Available: https://github.com/bsc-quantic/Extrae.jl
9. Adhianto L, Banerjee S, Fagan M, Krentel M, Marin G, Mellor-Crummey J, et al. HPCTOOLKIT: tools for performance analysis of optimized parallel programs. Concurr Comput. 2010;22: 685–701.
10. Knüpfer A, Rössel C, Mey D an, Biersdorff S, Diethelm K, Eschweiler D, et al. Score-P: A joint performance measurement run-time infrastructure for periscope, scalasca, TAU, and vampir. Tools for High Performance Computing 2011. Berlin, Heidelberg: Springer Berlin Heidelberg; 2012. pp. 79–91.
11. Gruber T, Panzlaff M, Eitzinger J, Hager G, Wellein G. LIKWID. Zenodo; 2024. doi:10.5281/ZENODO.4275676