摘 要: | 模板计算是一类使用固定模板的算法,被广泛应用于图像处理、计算流体动力学模拟等领域,现有的模板计算存在计算并行度弱、缓存命中率低、无法充分利用计算资源等问题。在消息传递接口(MPI)计算模型和跨平台多线程(OpenMP)计算模型的基础上提出MPI+OpenMP、统一计算设备架构(CUDA)+OpenMP两种混合计算模型。相较于常规的MPI计算模型,MPI+OpenMP计算模型通过使用MPI进行多节点之间的粗粒度通信,使用OpenMP实现进程内部的细粒度并行计算,并结合单指令多数据、非一致内存访问、数据预取、数据分块等技术,提高模板计算过程中的缓存命中率与计算并行能力,加快计算速度。在只采用CUDA进行模板计算时,CPU的计算资源没有得到充分利用,浪费了大量计算资源,CUDA+OpenMP计算模型通过对计算任务的负载划分让CPU也参与到计算中,以减少通信开销及充分利用CPU的多核并行计算能力。实验结果表明,OpenMP+MPI计算模型相较于MPI计算模型的平均加速比为3.67,CUDA+OpenMP计算模型相较于CUDA计算模型的平均加速比为1.26,OpenMP+MPI和CUDA+Ope...
|