AI 中文总结
研究用 Julia 开发大规模并行 HPC 应用程序的适用性,通过分析 Julia 代码 Trixi.jl 的并行性能并与 Fortran 代码 FLUXO 比较,展示挑战与解决方案,最终演示其在多达 61440 个 CPU 核心上的并行扩展性。
AI 中文摘要
Julia 编程语言旨在提供一种开发高性能计算(HPC)应用程序的现代方法,通过将高级动态接口与即时编译成本地机器代码相结合,以提高开发者生产力和本地代码性能。虽然该方法在串行应用中效果良好,但在传统大规模并行 HPC 工作负载中是否适用尚不明晰。本文通过分析用 Julia 编写的数值计算流体动力学模拟代码 Trixi.jl 的并行性能,并与 Fortran 代码 FLUXO 比较来填补这一空白。展示了大规模使用 Julia 的挑战及可能的解决方案,特别是关于启动时的代码加载和编译。最后演示了 Julia 代码在多达 61440 个 CPU 核心上的并行扩展性。
英文摘要
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.
Comments8 pages, 10 figures