Skip to main content
QUICK REVIEW

[论文解读] Enabling New Flexibility in the SUNDIALS Suite of Nonlinear and Differential/Algebraic Equation Solvers

David J. Gardner, Daniel R. Reynolds|arXiv (Cornell University)|Nov 19, 2020
Numerical methods for differential equations被引用 4
一句话总结

本文对 SUNDIALS 套件进行了重大重构,通过引入面向对象的线性与非线性求解器类、增强的向量抽象以及现代 Fortran 2003 接口,实现了对自定义和第三方代数求解器及数据结构的无缝集成。该更改在保持向后兼容性的同时,显著提升了在异构、超大规模 HPC 系统中的灵活性,并在数值基准测试中取得了具有竞争力的性能表现。

ABSTRACT

In recent years, the SUite of Nonlinear and DIfferential/ALgebraic equation Solvers (SUNDIALS) has been redesigned to better enable the use of application-specific and third-party algebraic solvers and data structures. Throughout this work, we have adhered to specific guiding principles that minimized the impact to current users while providing maximum flexibility for later evolution of solvers and data structures. The redesign was done through the addition of new linear and nonlinear solvers classes, enhancements to the vector class, and the creation of modern Fortran interfaces. The vast majority of this work has been performed "behind-the-scenes," with minimal changes to the user interface and no reduction in solver capabilities or performance. These changes allow SUNDIALS users to more easily utilize external solver libraries and create highly customized solvers, enabling greater flexibility on extreme-scale, heterogeneous computational architectures.

研究动机与目标

  • 在不破坏向后兼容性的前提下,使 SUNDIALS 支持应用特定及第三方代数求解器。
  • 支持不断演进的 HPC 架构,特别是包含 CPU+GPU 或其他加速器的异构系统。
  • 通过抽象求解器与数据结构接口,减少代码重复并提高可持续性。
  • 使用户能够以最少的代码更改创建高度定制化的求解器。
  • 提供现代化、可持续的 Fortran 2003 接口,与 C API 保持一致,并支持高级功能。

提出的方法

  • 基于面向对象设计原则,引入新的线性与非线性求解器类,将求解器与积分器解耦。
  • 增强 SUNDIALS 向量类,支持“多向量”抽象,将多个子向量组合用于多物理场问题与异构内存模型。
  • 在多向量基础上添加 MPI+X 向量抽象,以支持节点内并行与异构内存访问。
  • 设计新的融合操作,以减少通信开销,并提升现代架构下的硬件利用率。
  • 实现与 C API 一致的现代 Fortran 2003 接口,使用户能够完全访问新的求解器与向量抽象。
  • 使用虚方法表(VMTs)与构造函数(如 TaskLocalNewton)封装数据,实现自定义非线性求解器的实例化。

实验结果

研究问题

  • RQ1如何重构 SUNDIALS 以在用户代码更改最少的情况下支持应用特定及第三方求解器?
  • RQ2哪些设计模式能够实现 HPC 环境中数值软件的长期可持续性与可扩展性?
  • RQ3如何扩展向量抽象以支持异构内存与节点内并行?
  • RQ4是否可以在不降低性能或破坏现有代码的前提下实现新的求解器接口?
  • RQ5自定义、问题感知的求解器在复杂模拟中能多大程度上提升性能?

主要发现

  • 新架构保持了向后兼容性,未增加模拟开销,保留了原有求解器的行为。
  • 数值测试证实,新设计在运行时开销极小的前提下,实现了具有竞争力的性能表现。
  • 当使用能够利用系统结构与局部性的特定问题非线性求解器时,获得了显著的性能加速。
  • 多向量抽象能够高效处理多物理场问题与异构内存布局。
  • MPI+X 向量抽象简化了在异构系统中集成新型节点内并行模型的流程。
  • 现代 Fortran 2003 接口提供了对新功能的完整访问,其功能与性能与 C API 等价。

更好的研究,从现在开始

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

无需绑定信用卡

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