《Astronomy and Computing》:The PLUTO code on GPUs: A first look at Eulerian MHD methods
编辑推荐:
GPU加速的磁流体动力学(MHD)模拟代码gPLUTO在C++和OpenACC框架下实现,显著提升计算性能与能效,适用于恒星爆发、磁 dynamo过程及吸积盘等天体物理现象的高分辨率模拟。
M. Rossazza | A. Mignone | M. Bugli | S. Truzzi | L. Riha | T. Panoc | O. Vysocky | N. Shukla | A. Romeo | V. Berta
都灵大学物理系,Via Pietro Giuria 1,I-10125 都灵,意大利
摘要
我们展示了gPLUTO的初步性能结果,这是针对计算等离子体天体物理学的PLUTO代码的新GPU优化版本。与它的前身一样,gPLUTO采用欧拉有限体积公式来数值求解多空间维度的磁流体力学(MHD)方程。尽管如此,这个新实现是完全用C++重写的,并利用OpenACC编程模型在NVIDIA GPU上实现加速。虽然关于代码及其其他模块的更全面描述将在未来的论文中呈现,但在这里我们重点介绍一些预备性结果,这些结果展示了代码在预艾克萨级并行架构上的潜力和性能。
引言
磁流体力学(MHD)模拟在理解各种复杂的物理现象中起着关键作用。在天体物理过程的背景下,这些现象包括行星的形成和演化(Lesur, 2021)、恒星(Teyssier和Commer?on, 2019)和星系(Zhang, 2018)、高能粒子的加速(Lazarian等人,2012;Amato和Blasi, 2018),以及与黑洞(Narayan, 2005)和中子星(Faber和Rasio, 2012;Uzdensky和Rightley, 2014)等致密天体活动相关的多波段辐射。此外,MHD框架在许多地面应用中也得到了利用,例如核聚变(Knaepen和Moreau, 2008;Inghirami等人, 2016)、空间天气预测(Shibata和Magara, 2011)以及等离子体约束(Doyle等人, 2007)。
MHD模拟的计算需求本质上与需要同时描述通常跨越多个数量级的空间和时间尺度有关。能够解析发生在比全局系统典型尺寸小得多的尺度上的现象(例如,构成吸积盘的等离子体中的湍流结构或穿过星际介质的喷流)对于更深入地理解这些现象的属性以及更准确地预测它们的观测/实验特征至关重要。在过去十年中,更高计算效率在多维天体物理MHD模拟中的定性影响包括恒星爆炸模型(Mezzacappa, 2023;Janka, 2025)、发电机过程(Charbonneau, 2020;Del Zanna等人, 2022)以及围绕中心致密天体的物质吸积/喷射(Mayer, 2019;Cattorini和Giacomazzo, 2024)等。
近年来,由于图形处理单元(GPUs)的出现,高性能计算领域经历了变革性的转变,这些GPU提供了巨大的并行性和计算能力。在科学计算中使用GPU确实开辟了新的前沿,使研究人员能够以前所未有的分辨率和速度探索复杂的物理系统。值得注意的例子包括欧拉代码H-AMR(Liska等人, 2022)、IDEFIX(Lesur等人, 2023)、AthenaK(Stone等人, 2024)、ECHO(Del Zanna等人, 2024)和AsterX(Kalinani等人, 2025)。
在本文中,我们介绍了为建模天体物理等离子体而开发的GPU友好版本PLUTO代码(Mignone等人,2007;Mignone等人,2012b)的最新进展。PLUTO在过去二十年里被数百名天体物理学界的研究人员广泛使用。由于提供了多种物理模块(即从经典到相对论性流动、理想和非理想动力学、不同几何形状以及状态方程),该代码已被应用于非常不同的天体物理场景,从高能天体物理学(Mignone等人,2010a;Mignone等人,2013;Mattia等人,2023;Pavan等人,2023)到年轻恒星对象(Orlando等人,2011)、超新星遗迹(Olmi等人,2018;Olmi和Bucciantini,2019;Orlando等人,2019;Orlando等人,2020)、等离子体物理学(Bodo等人,2022;Bugli等人,2025)、行星形成(Lesur,2021;Flock和Mignone,2021)以及太阳物理学(Réville等人,2015;Perri等人,2018)等。
新的GPU加速实现gPLUTO(https://gitlab.com/PLUTO-code/gPLUTO)是对传统代码(https://plutocode.ph.unito.it)的完全C++重写,它利用OpenACC编程模型来充分利用现代GPU架构的强大计算能力和能源效率,在计算速度、功耗和成本效益方面提供了显著优势。gPLUTO已经取代了PLUTO代码,后者将不再接受更新。选择OpenACC主要是由于NVIDIA的直接支持以及该模型相对于低级框架的固有简洁性。其基于指令的特性使得移植策略具有最小的侵入性,并且可以在保持原始代码库结构的同时显著降低开发工作量。转向C++是必要的,因为需要利用特定语言扩展,如函数模板、类和多态性。gPLUTO保留了之前版本的优势,如稳定性、多功能性和用户友好性,同时也能够访问最新的高性能计算资源。本工作概述了代码的基本设计原则以及在模拟性能方面取得的显著成果,而关于新代码及其所有物理模块的更全面描述将出现在未来的手稿中。
在这项工作中,我们通过介绍其底层算法框架、数据管理和并行化策略以及实现解决方案来展示gPLUTO的技术细节。我们还展示了一系列基准测试,突出了代码在复现这些测试方面的有效性及其显著的性能。本文有一篇配套的补充论文,重点介绍了拉格朗日粒子模块的集成及其GPU卸载(Suriano等人,2025)。论文的组织结构如下:第2节简要回顾了MHD方程和有限体积框架。第3节介绍了与OpenACC实现相关的技术方面,第4节展示了在两个标准用例上的并行性能。最后,在第5节中我们得出了结论。
MHD方程
继其前身(Mignone等人,2007;Mignone等人,2012b)之后,gPLUTO旨在求解各种守恒律系统: