利用网格结构提升鞍点问题的多重网格性能
数值分析
2024-01-15 v1 数值分析
摘要
近年来,针对线性或线性化鞍点问题(如 Stokes 方程和 Oseen 方程)的有限元离散求解器已发展得相当成熟。此类系统的预条件子主要有两大类:基于块分解的方法和基于整体多重网格的方法。这两类预条件子在构造时都有若干关键选择需要确定,例如为整体多重网格选择合适的松弛格式。从已有研究中,我们可以获得一些关于在低性能计算环境下何种选项更优的见解,但文献中很少有对这些方法进行公平比较的工作,尤其是针对诸如 GPU 等现代架构。在本文中,我们比较了块三角预条件子与采用三种最常见松弛格式(Braess-Sarazin、Vanka 和 Schur-Uzawa)的整体多重网格方法。我们针对结构化网格离散开发了一种高性能的 Vanka 松弛算法,该算法利用了此场景下的内存效率优势。我们详细分析了多重网格松弛格式的各种 CUDA 内核的行为,并评估了它们各自的算术强度、性能和运行时间。使用这些预条件子运行求解 Stokes 方程的预条件 FGMRES 求解器,使我们能够在实际应用中比较它们的效率。我们表明,整体多重网格的性能可以超越块三角预条件,并且使用 Vanka 或 Braess-Sarazin 松弛最为高效。尽管采用 Vanka 松弛的多重网格在 CPU 上性能有所下降(比 Braess-Sarazin 慢高达 ),但它在 GPU 上的性能却能比 Braess-Sarazin 高出 以上,使其成为一种极具竞争力的算法,特别是考虑到有效的 Braess-Sarazin 松弛需要大量的算法调优。
引用
@article{arxiv.2401.06277,
title = {Exploiting mesh structure to improve multigrid performance for saddle point problems},
author = {Lukas Spies and Luke Olson and Scott MacLachlan},
journal= {arXiv preprint arXiv:2401.06277},
year = {2024}
}
备注
submitted to IJHPCA