论文部分内容阅读
随着图形处理器(Graphics Processing Unit,GPU)的快速发展,当前,GPU的理论计算能力和存储器带宽都大大超过了主流CPU。相对于计算机集群和超级计算机,将GPU作为CPU的协处理器完成大规模数据密集型的计算任务,具有更高的性价比。CUDA并行编程使程序员不需要掌握复杂的图形学API就能利用GPU并行计算;而MPI和CUDA混合编程从线程、进程两个粒度在多CPU、多GPU的计算环境下完成并行算法。球谐变换作为球体或者类球体对象的重要描述方法,在分子动力学、天文学、流体力学、热力学、计算机图形学等领域都有广泛的应用。球谐变换在描述复杂对象的时候,采用什么算法获得球谐变换的展开系数直接影响结算结果的准确性。本文的基于GPU的球谐变换快速展开算法,可以加速分子形状相似性的计算速度,具有重要的理论意义和现实意义。球谐变换快速展开算法涉及快速傅里叶变换和勒让德变换。离散傅里叶变换利用分治法思想和蝶形运算降低了时间复杂度和空间复杂度。一般的勒让德变换采用著名的三项递推公式求任意阶球谐系数,对于多离散点估值的球谐变换,效率不能令人满意。本文的通过线性变换的方法将原来的切比雪夫估值转换为同阶的多项式逼近形式,利用球谐函数采样点对称性降低计算量。本文的基于GPU的球谐变换快速展开算法及其在分子模拟中的应用研究,主要内容包括:1.研究了包括CUDA并行编程模型和CUDA+MPI并行编程模型的并行计算理论和技术和球谐变换快速展开算法的数学基础;2.利用CPU环境下的CUBS、FFTW库函数,实现球谐变换的串行展开算法;3.实现了CUDA环境下的球谐变换快速展开算法,CUDA并行算法在球谐变换展开系数L=1024的情况下和串行算法的加速比达到了9.72。实现了CUDA+MPI环境下的球谐变换快速展开算法,CUDA+MPI并行算法在球谐变换展开系数L=1024的情况下和串行算法的加速比达到了14.66,说明GPU在完成密集计算任务是有良好的表现;4.利用球谐函数作为分子空间结构的数据表示,通过GPU球谐变换展开算法加速计算出的球谐系数表示分子空间结构特征向量,可以缩短比较它们的相似度的时间。