论文部分内容阅读
随着多源重力观测数据的急剧增加,在更高时空分辨率水平上描述重力场精细结构、从全球视角分析重力场参数的时空分布已成为必然趋势。目前,重力场数据处理技术与重力场观测技术的发展还不相适应,并行计算技术在重力场研究中的应用还不够深入。基于此,本文以扰动引力的计算为例,分析了几种扰动重力场参数计算方法中内在的并行性,在不同的硬件条件下,尤其是以CPU+GPU为代表的异构环境下进行了并行化处理,使之适应更大规模数据处理的要求。本文的主要研究内容包括:1.针对构建点质量模型时遇到的大型线性方程组解算效率低的问题,分析了重力异常与点质量的相关性,提出了基于窗口控制的残差点质量模型解算方案。该方案以逐级残差的形式将重力异常的相关性控制在一定的范围内,将点质量模型的求解由原来的稠密线性方程转化为稀疏线性方程,对系数矩阵压缩存储可显著减少数据存储量。在Intel Parallel Studio环境下调用MKL并行计算库中的稀疏线性方程求解器,在普通电脑上即可完成112896阶稀疏线性方程的解算,有效扩大了点质量的整体解算范围,提高了解算效率,在多核处理器上调用MKL并行计算库可使计算效率进一步提高。2.针对高阶重力场模型计算重力场参数效率低下的问题,设计了GPU环境下基于CUDA的并行计算方案(该方法对其它重力场参数的计算同样适用)。用位系数模型计算扰动引力可分为两部分:Legendre函数及其导数的计算;球谐函数的计算。前者只能通过串行计算的方式完成,而后者在计算时具有丰富的并行性。将球谐函数的计算转化为一维向量的点乘和点积运算,并在GPU上调用相应的库函数即可极大提高效率,随着计算阶次的增大,并行计算的优势将会越来越明显。与现有的快速计算方法相比,该方案能效比较高,只需一块GPU显卡即可获得很高的加速比。3.为了尽可能大地发挥硬件的计算性能,本文结合GPU的体系结构特性对模型扰动引力的并行计算方案进行了优化设计。主要包括线程的合理分配与利用、CPU与GPU间数据传输优化、优化访存效率、移除条件分支、减少串行程序的计算时间等。针对超高阶Legendre函数递推效率低下的问题,将递推过程中与经纬度无关的元素提前计算好以便反复调用,这样极大地降低了串行部分对并行计算效率的影响;通过移除条件分支,将Legendre函数一阶导数的计算移植到GPU上执行,不仅提高了计算效率,而且减少了数组向设备端传递的耗时。实验结果表明,通过以上优化可进一步提高并行效率,在低端消费级显卡设备上,计算阶次大于1080阶时,整体计算性能提高了5倍以上,在Tesla K80专业计算显卡上则至少能提高10倍。4.设计了GPU环境下基于1D-FFT技术的全球模型扰动引力并行计算方案。该方案将球谐函数的计算移植在GPU上,计算阶次为2160阶时,在低端消费级显卡和专业计算显卡上的加速比分别达到了3倍和5倍以上。针对极点处计算扰动引力水平分量时的奇异性问题,结合已有研究成果,给出了去奇异公式。5.首次在GPU上实现了基于1D-FFT的Stokes全球积分法并行计算扰动重力场参数。全球积分法最大的障碍就是Stokes核函数计算量非常大,但将其并行化处理后这个问题很快迎刃而解,实验结果表明,计算全球5′×5′扰动引力三分量时,在专业计算显卡上只需不到2分钟即可完成,而串行程序则需半小时左右;若将分辨率提高到2′×2′时,串行算法需12小时左右,而并行算法仅需20分钟即可完成,计算效率提高了30倍以上。为进一步提高计算效率,提出了多机、多核异构环境下的并行解算方案。该方案在节点间实现进程级并行,在节点内的多核或众核上实现线程级并行,能够充分发挥计算机系统内不同硬件的计算优势。