[论文解读] Parthenon -- a performance portable block-structured adaptive mesh refinement framework
Parthenon 是一个基于 Kokkos 构建的性能可移植、块结构化自适应网格细化(AMR)框架,旨在实现跨多种架构的高效百亿亿次计算模拟。其在 9,216 个 Frontier 节点上实现了 1.7×10¹³ 个单元-循环/秒的性能,弱 scaling 效率约为 92%,通过设备内存分配、变量与块的逻辑打包,以及单边异步 MPI 通信,最大限度减少了数据移动和通信开销。
On the path to exascale the landscape of computer device architectures and corresponding programming models has become much more diverse. While various low-level performance portable programming models are available, support at the application level lacks behind. To address this issue, we present the performance portable block-structured adaptive mesh refinement (AMR) framework Parthenon, derived from the well-tested and widely used Athena++ astrophysical magnetohydrodynamics code, but generalized to serve as the foundation for a variety of downstream multi-physics codes. Parthenon adopts the Kokkos programming model, and provides various levels of abstractions from multi-dimensional variables, to packages defining and separating components, to launching of parallel compute kernels. Parthenon allocates all data in device memory to reduce data movement, supports the logical packing of variables and mesh blocks to reduce kernel launch overhead, and employs one-sided, asynchronous MPI calls to reduce communication overhead in multi-node simulations. Using a hydrodynamics miniapp, we demonstrate weak and strong scaling on various architectures including AMD and NVIDIA GPUs, Intel and AMD x86 CPUs, IBM Power9 CPUs, as well as Fujitsu A64FX CPUs. At the largest scale on Frontier (the first TOP500 exascale machine), the miniapp reaches a total of $1.7 imes10^{13}$ zone-cycles/s on 9,216 nodes (73,728 logical GPUs) at ~92% weak scaling parallel efficiency (starting from a single node). In combination with being an open, collaborative project, this makes Parthenon an ideal framework to target exascale simulations in which the downstream developers can focus on their specific application rather than on the complexity of handling massively-parallel, device-accelerated AMR.
研究动机与目标
- 解决当前块结构化 AMR 框架在百亿亿次架构中缺乏应用级性能可移植支持的问题。
- 实现在包括 CPU 和 GPU 在内的异构系统上高效可扩展的模拟,适用于多个百亿亿次计算平台。
- 通过设备内存分配和优化的内核启动,减少多节点 AMR 模拟中的数据移动和通信开销。
- 提供一个模块化、可扩展的框架,使应用开发者能够专注于物理建模,而非底层并行化和可移植性问题。
- 在多种架构上(包括 AMD 和 NVIDIA GPU、Intel 和 AMD x86 CPU、IBM Power9 和富士通 A64FX CPU)展示强可扩展性和弱可扩展性性能。
提出的方法
- 框架基于 Kokkos 编程模型构建,以实现对多种硬件架构的抽象抽象。
- 所有模拟数据均直接在设备内存中分配,以最小化主机与设备之间的数据移动。
- 变量和网格块被逻辑打包为更大的结构,以减少内核启动开销,尤其适用于小块尺寸的情况。
- 使用单边异步 MPI 调用,以实现通信与计算的重叠,降低多节点环境中的延迟。
- 框架提供了多维变量、张量和稀疏分配的抽象,以及基于任务的驱动程序,支持依赖感知执行。
- 模块化的包系统允许将物理求解器(如流体动力学、辐射传输)解耦,便于复用和扩展。
实验结果
研究问题
- RQ1性能可移植的 AMR 框架是否能在包括 GPU 和多种 CPU 类型在内的多种百亿亿次架构上实现高并行效率?
- RQ2设备内存分配和变量的逻辑打包在块结构化 AMR 模拟中,能否有效减少内核启动开销?
- RQ3单边异步 MPI 在多节点 AMR 模拟中,能在多大程度上降低通信延迟并提高与计算的重叠?
- RQ4该框架是否能在百亿亿次规模下保持高弱可扩展性效率,特别是在 Frontier 等新兴架构上?
- RQ5模块化包抽象在多物理场应用中,如何支持快速原型设计和代码复用?
主要发现
- Parthenon 在 9,216 个 Frontier 节点(73,728 个逻辑 GPU)上实现了 1.7×10¹³ 个单元-循环/秒的性能,展示了百亿亿次级别的计算能力。
- 在 Frontier 超级计算机上,从单节点扩展到 9,216 个节点时,框架的弱可扩展性效率达到约 92%。
- 成功在 AMD 和 NVIDIA GPU、Intel 和 AMD x86 CPU、IBM Power9 CPU 以及富士通 A64FX CPU 上展示了性能可移植性。
- 在相同节点上,GPU 加速的模拟显著快于纯 CPU 模拟,无论在均匀网格还是多级精细网格下均表现优异。
- Parthenon-hydro 小型应用实现了完整的 3D 可压缩流体动力学与 AMR 功能,代码量不足 1,000 行,展示了强大的快速原型开发能力。
- 该框架的设计有效优化了内存和通信使用,通过变量与块的逻辑打包显著降低了内核启动开销。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。