Mat2Stencil:一种用于结构网格上显式与隐式无矩阵PDE求解器的模块化基于矩阵的DSL
分布式、并行与集群计算
2023-09-12 v2
摘要
偏微分方程(PDE)求解器被广泛应用于众多科学与工程领域。然而,实现高性能与可扩展性通常需要复杂且底层的编程,尤其在利用结构网格中确定性稀疏模式时。本文提出一种创新的领域特定语言(DSL)Mat2Stencil及其编译器,用于结构网格上的PDE求解器。Mat2Stencil引入了结构化稀疏矩阵抽象,便于以模块化、灵活且易用的方式表达广泛范围内的求解器,涵盖Jacobi或Gauss-Seidel预条件子、不完全LU或Cholesky分解,以及构建于其上的多重网格方法等组件。我们的DSL编译器随后通过多阶段编程生成由广义模板组成的无矩阵代码。除Jacobi风格模板在空间维度上易并行外,该代码允许以拟仿射循环形式存在的空间循环携带依赖。我们进一步提出一种针对空间依赖循环的新型自动并行化技术,其提供用于线程化的编译时确定性任务划分,自动计算必要的线程间同步,并生成具有细粒度同步的高效多线程实现。通过实现4个基准程序(其中3个为NAS并行基准中的伪应用,代码量为,1个为无矩阵高性能共轭梯度,代码量为),我们相比手工实现取得了最高、平均的性能。
引用
@article{arxiv.2204.13304,
title = {Mat2Stencil: A Modular Matrix-Based DSL for Explicit and Implicit Matrix-Free PDE Solvers on Structured Grid},
author = {Huanqi Cao and Shizhi Tang and Qianchao Zhu and Bowen Yu and Wenguang Chen},
journal= {arXiv preprint arXiv:2204.13304},
year = {2023}
}