Skip to main content
QUICK REVIEW

[论文解读] AMReX: Block-Structured Adaptive Mesh Refinement for Multiphysics Applications

Weiqun Zhang, Andrew Myers|arXiv (Cornell University)|Sep 25, 2020
Computer Graphics and Visualization Techniques参考文献 8被引用 9
一句话总结

AMReX 是一个高性能、可移植的软件框架,用于多物理场应用中的块结构自适应网格加密(AMR),可在从笔记本电脑到百亿亿次计算系统的各种架构上实现高效且可扩展的模拟。它支持复杂的偏微分方程(PDEs)、粒子方法、嵌入边界和线性求解器,并通过抽象层确保在 CPU 和 GPU 上的性能可移植性,而无需对代码进行重大修改。

ABSTRACT

Block-structured adaptive mesh refinement (AMR) provides the basis for the temporal and spatial discretization strategy for a number of ECP applications in the areas of accelerator design, additive manufacturing, astrophysics, combustion, cosmology, multiphase flow, and wind plant modelling. AMReX is a software framework that provides a unified infrastructure with the functionality needed for these and other AMR applications to be able to effectively and efficiently utilize machines from laptops to exascale architectures. AMR reduces the computational cost and memory footprint compared to a uniform mesh while preserving accurate descriptions of different physical processes in complex multi-physics algorithms. AMReX supports algorithms that solve systems of partial differential equations (PDEs) in simple or complex geometries, and those that use particles and/or particle-mesh operations to represent component physical processes. In this paper, we will discuss the core elements of the AMReX framework such as data containers and iterators as well as several specialized operations to meet the needs of the application projects. In addition we will highlight the strategy that the AMReX team is pursuing to achieve highly performant code across a range of accelerator-based architectures for a variety of different applications.

研究动机与目标

  • 为块结构自适应网格加密(AMR)提供统一的高性能软件框架,支持多种多物理场应用。
  • 确保在不断演进的架构(包括多核 CPU 和 GPU 加速系统)上的性能可移植性,而无需对应用程序进行特定代码修改。
  • 支持涉及偏微分方程(PDEs)、粒子、粒子-网格操作和嵌入边界几何形状的复杂物理模型。
  • 为大规模模拟中的隐式时间推进和检查点/重启提供高效的线性求解器和 I/O 支持。
  • 通过抽象层、标准化数据结构以及集成的调试和性能分析工具,降低开发和维护开销。

提出的方法

  • 使用分层的块结构网格,在多个加密级别上采用逻辑矩形块(patches),在层级级别强制嵌套,但不在单个网格级别强制。
  • 使用数据容器(patches)和迭代器管理网格数据,支持显式和隐式时间离散化。
  • 集成原生几何多重网格求解器,并与外部线性代数库及 SUNDIALS 接口,用于刚性 ODE 系统。
  • 通过专用数据结构和粒子-网格操作(包括粒子插值和沉积)支持基于粒子的算法。
  • 使用嵌入边界(切割单元)方法表示复杂几何形状,采用双网格分解方式对网格和粒子数据进行分解。
  • 采用抽象层将应用程序与底层硬件细节隔离,实现在 CPU 和 GPU 架构之间的性能可移植性。

实验结果

研究问题

  • RQ1如何通过单一软件框架高效支持具有不同算法和计算需求的广泛多物理场应用?
  • RQ2需要哪些架构设计和抽象机制,才能确保在多样化的百亿亿次和传统 HPC 系统之间的性能可移植性?
  • RQ3如何将块结构 AMR 扩展以支持粒子、嵌入边界和复杂几何形状,同时保持可扩展性和性能?
  • RQ4哪些软件工程实践和工具对开发、调试和性能分析大规模 AMR 应用最为有效?
  • RQ5从数学方程自动生成代码在 AMR 基础模拟中能在多大程度上提升开发效率和代码可维护性?

主要发现

  • AMReX 在从笔记本电脑到百亿亿次系统的各种架构上均能实现可扩展的高性能模拟,且在迁移到新硬件时性能下降极小。
  • 该框架的抽象层成功地将应用逻辑与底层硬件细节解耦,实现了无需牺牲效率的性能可移植性。
  • AMReX 支持复杂的物理模型,包括 PDEs、通过 SUNDIALS 支持的刚性 ODEs、粒子和嵌入边界,所有这些均集成在统一的基础设施中。
  • 集成的工具(如 TinyProfiler,以及带数组边界检查、NaN 初始化和回溯跟踪的调试模式)显著减少了调试时间并提高了代码可靠性。
  • 该框架对双网格分解的支持使得网格和粒子的域分解可独立进行,从而在粒子-网格模拟中提升了负载均衡性。
  • 从方程生成代码的原型实现(例如,用于广义相对论和玻尔兹曼方程)展示了在加速复杂物理模型开发方面的潜力。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。