快速多极子算法的异构并行加速技术研究
【摘要】:众所周知,为了制造出性能更加卓越的舰船、飞机等大型装备,有必要在设计过程中对其电磁特性进行评估,局限于场地、装备庞大等问题,很难对这些装备的电磁特性进行实际测量,因此目前依托高性能计算技术对舰船、飞机等大型装备进行数值计算以获取电磁特性是当前的重要手段之一。飞机、舰船的电磁散射特性计算属于电大尺寸模型电磁计算问题,如何快速求解这类问题得到满足工程要求的结果一直是计算电磁学中的热点。受限于算法时间和空间的复杂度,早期的电磁场积分方程方法如矩量法(Mo M)求解规模比较小,后来有人从数学和物理层面改进了电磁场积分方程求解过程,提出了多层快速多极子算法(MLFMA),将计算量和存储量减少到O(Nlog N),使电大尺寸目标的电磁散射分析计算提供了可能,为了进一步加快求解问题的效率,必须在计算机层面对算法加以改进。近年来,异构计算技术迅猛发展,异构计算中常用的GPU加速卡在浮点运算能力和存储容量方面均有很大的提升,GPU的软件编程框架CUDA也新增了很多新特性,诸多计算集群也正朝着CPU-GPU异构并行方向发展,因此研究如何利用CUDA的新特性,实现CPU-GPU异构并行加速多层快速多极子计算很有必要。另外,MLFMA分析超电大模型电磁散射特性耗费时间长,使用集群系统资源多,程序可靠性运行问题尖锐,研究MLFMA容错技术也非常必要。因此本文主要研究了这几个方面的内容。(1)结合当前计算机发展趋势,本文针对进一步提高MLFMA的计算效率和求解规模,开展基于CPU-GPU异构平台的MLFMA的并行算法研究。研究的中心聚焦在MLFMA矩矢相乘中远场相互作用部分,远场相互作用包括聚合、转移、配置三个过程。首先研究聚合、转移、配置过程在GPU端的实现思路,实现GPU中线程块之间的负载均衡和线程并行。针对CPU与GPU间数据传输耗时长而影响计算效率的问题,采用“显存-内存”核外技术、显存与内存异步数据传输技术进一步优化整体计算过程,提高算法执行效率的同时,也扩大算法求解规模。针对已完成的异构并行多层快速多极子程序,采用不同的模型和算例验证异构并行MLFMA算法的正确性,并与传统同构并行MLFMA算法相比较,验证了本文异构并行MLFMA的加速效果。(2)针对并行MLFMA迭代求解中超算集群计算节点故障而意外中断的情况,对并行迭代求解部分做了改进,将MLFMA每步迭代之后的近似解写入磁盘,实现迭代求解过程的断点续算,提高了多层快速多极子算法的可靠性和鲁棒性。