🤖 AI Summary
This study investigates the suitability of the Julia programming language for large-scale parallel high-performance computing (HPC), with a focus on numerical simulation domains traditionally dominated by Fortran. The authors develop and evaluate Trixi.jl, a Julia-based computational fluid dynamics code, achieving the first massively parallel strong scaling of a pure-Julia HPC application on 61,440 CPU cores and benchmarking its performance against the mature Fortran code FLUXO. To address Julia’s bottlenecks in code loading and just-in-time compilation at scale, they introduce optimized startup procedures and precompilation strategies. The results demonstrate that Julia can simultaneously deliver high developer productivity and competitive computational performance, offering a viable new paradigm for future scientific computing.
📝 Abstract
The Julia programming language aims to provide a modern approach to develop high-performance computing (HPC) applications. It tries to achieve this by combining a high-level, dynamic interface with just-in-time compilation to native machine code, thereby facilitating high developer productivity and native code performance at the same time. While this approach has already been shown to work well for serial applications, it is not clear if it readily translates to traditional, massively parallel HPC work loads. In this paper, we fill this gap by analyzing the parallel performance of the numerical computational fluid dynamics simulation code Trixi$.$jl, written in Julia, and compare it to the Fortran code FLUXO. We show some of the challenges of using Julia at scale and discuss possible solutions, specifically with respect to code loading and compilation at startup. Finally, we demonstrate the parallel scaling of our Julia code on up to 61440 CPU cores.