Project Details
Accessible extreme-scale computing with Trixi.jl and the Julia programming language
Subject Area
Computer Architecture, Embedded and Massively Parallel Systems
Mathematics
Mathematics
Term
since 2023
Project identifier
Deutsche Forschungsgemeinschaft (DFG) - Project number 528753982
Developing numerical simulation software for efficient high-performance computing (HPC) is difficult, especially when considering mesh adaptivity and heterogeneous hardware systems. A key issue is the need to balance the ability to add new functionality to the existing code base with the requirements of a scalable and robust implementation. The Julia programming language is uniquely positioned to bridge the gap between ease of use and efficiency in high-performance computing. However, a lot of this potential is still unlocked, since few HPC applications written in Julia exist and little documentation is available on best practices for Julia in the HPC context. A central aim of this project is therefore to extend the usability and impact of our Julia-based research software Trixi.jl by making extreme-scale computing as accessible as the rest of the Julia experience. Trixi.jl is a Julia package for adaptive numerical simulations of transport-dominated phenomena in science and engineering, with a focus on extensibility, ease of use, and high performance. To achieve our goal, we will first improve the modularization of the package and introduce new HPC-aware data structures that encapsulate some of the complexities of parallel data exchange and mesh adaptivity. A C-compatible application programming interface will then be introduced to allow Trixi.jl being used from other HPC simulation programs. To further ensure that the implementation retains a good code quality and high computational performance, we will integrate HPC hardware into our continuous testing infrastructure and create an HPC benchmarking suite for continuous performance monitoring. Furthermore, we will document all steps of the research software development process and publish best practices of Julia for HPC. Finally, we will promote the further development of Trixi.jl by providing tutorials and hands-on workshops for other scientists, and actively engage with the Julia HPC community.
DFG Programme
Research Grants