利用 OpenACC 在 GPU 上加速核结构组态相互作用计算中的迭代本征求解器
分布式、并行与集群计算
2021-09-02 v1 数学软件
数值分析
数值分析
核理论
摘要
为了在配备通用图形处理单元(GPU)的分布式内存并行系统上加速求解核物理多体计算产生的大型特征值问题,我们使用基于 OpenACC 指令的编程模型修改了先前开发的用 FORTRAN 90 编写的本征求解器的 MPI/OpenMP 混合实现。这种方法只需对原始代码做最小改动,并使大规模核结构模拟能够从分布式内存多核 CPU 系统平滑迁移到分布式 GPU 系统。然而,为使基于 OpenACC 的本征求解器在 GPU 上高效运行,我们需要考虑多核 CPU 与 GPU 设备之间的架构差异。因此,插入 OpenACC 指令的最优方式可能不同于原先插入 OpenMP 指令的方式。我们指出了在稀疏矩阵-矩阵乘法(SpMM)——其构成本征求解器的主要开销——实现中的这些差异,以及预处理步骤和稠密线性代数运算中的其他差异。我们将基于 OpenACC 的实现在多 GPU 上的性能与分布式内存多核 CPU 上的性能进行比较,并展示了相比多核 CPU 的单节点性能,GPU 上实现的显著加速。我们还表明,由于不同 MPI 进程间的通信开销,本征求解器在多 GPU 上的整体性能提升较为有限。
引用
@article{arxiv.2109.00485,
title = {Accelerating an Iterative Eigensolver for Nuclear Structure Configuration Interaction Calculations on GPUs using OpenACC},
author = {Pieter Maris and Chao Yang and Dossay Oryspayev and Brandon Cook},
journal= {arXiv preprint arXiv:2109.00485},
year = {2021}
}
备注
26 pages, 13 figures