基于CPU+GPU异构并行的广义共轭余差算法性能优化

作者:黄东强; 黄建强; 贾金芳; 吴利; 刘令斌; 王晓英
来源:郑州大学学报(工学版), 2022, 43(06): 15-21.
DOI:10.13705/j.issn.1671-6833.2022.03.018

摘要

为了提高GRAPES数值天气预报模式的计算效率,改善动力框架部分的性能,针对广义共轭余差算法(GCR)求解赫姆霍兹方程在GRAPES模式中耗时较大的问题,提出了一种基于CPU+GPU异构并行的预处理广义共轭余差算法。采用不完全LU分解对系数矩阵进行预处理来减少迭代次数,在此基础上实现了OpenMP的细粒度并行和MPI粗粒度并行,OpenMP并行主要是采用循环展开的方式对程序中无数据依赖的循环体使用编译制导来提高程序的性能;MPI并行主要是将数据划分给各个进程,采用非阻塞通信和优化进程通信数据量的方式来提高并行程序的可拓展性。实现了MPI+CUDA异构并行,MPI负责节点间进程通信以及迭代控制,CUDA负责处理计算密集型任务,将GCR中耗时较大的矩阵计算部分移植到GPU上处理,采用访存优化和数据传输优化来减少CPU和GPU间的数据传输开销。实验结果表明:与串行程序相比,OpenMP并行加速比为2.24,MPI并行加速比为3.32,MPI+CUDA异构并行加速比为4.69,实现了异构平台上的广义共轭余差算法性能优化,提高了程序的计算效率。

全文