我国幅员辽阔、地质结构复杂,进行大尺度、高精度地下水数值模拟时涉及的计算量更为庞大。本项目以计算性能远高于CPU的GPU为核心开展地下水数值模拟求解的相关研究。项目组将首先研究基于单个GPU的稳定双共轭梯度法(Bi-CGSTAB),并以此为基础,结合区域分解法实现CPU与GPU相结合的异构多核环境下的大规模地下水数值模拟求解,进一步提高地下水数值模拟的求解效率,并以此为核心实现地下水数值模拟软件MODFLOW及HydroGeoSphere的并行化。进一步,项目组将以西安咸阳地区及莱州湾地区为具体研究对象,得到能够针对特定水文地质条件特点的并行算法优化方法,以建立能够求解实际问题的高效并行计算方法,为解决我国大面积的地下水数值模拟问题奠定一定的理论及技术基础。
Groundwater Simulation;Heterogenous;Parallel Computing;GPU;CG
我国幅员辽阔、地质结构复杂,进行大尺度、高精度地下水数值模拟时涉及的计算量更为庞大。本项目以计算性能远高于CPU的GPU为核心开展了地下水数值模拟求解的相关研究。项目组提出以基于GPU的线性方程组求解器替换原有地下水数值模拟中的串行线性方程组求解器来实现地下水数值模拟求解的GPU并行化。项目组基于此方法采用CUDA架构实现了地下水数值模拟软件MODFLOW及MARUN的单GPU并行,实验结果表明项目组所提方法能以更低的成本和能耗、更高的求解效率实现大规模的地下水数值模拟求解。项目组提出将地下水数值模拟中的线性方程组按行拆分为多块并将各块分配给多个GPU上存储并计算的方式进行矩阵向量乘及内积等操作完成共轭梯度法(CG)及稳定双共轭梯度法(Bi-CGSTAB),项目组采用CUDA架构实现了此方法以及MODFLOW及MARUN的多GPU并行,实验结果表明采用多个GPU能够加速地下水数值模拟的求解,但由于项目组目前所用的GPU不支持GPU之间的直接通信,因此采用多个GPU的加速效果尚低于使用单个GPU的加速效果。项目组还提出了采用区域分解法将区域划分为多个子区域,并将各子区域分配到不同计算节点上,在各计算节点上离散各子区域并以多核方式求解该子区域线性方程组的方式加速地下水数值模拟求解的方法。项目组采用MPI/OpenMP混合模型实现了该分布式共享内存体系结构下的地下水数值模拟求解方法,实验结果表明该方法具有较高的可扩展性。项目组上述成果为解决我国大面积的地下水数值模拟问题奠定了一定的理论及技术基础。