论文部分内容阅读
在很多物理现象中,都会使用粒子输运方程(Boltzmann方程)来描述粒子的传输过程,例如,在核反应堆中,应用输运方程计算堆芯的中子分布,进行屏蔽设计;在生物医学领域中,可以用输运理论来确定放射性治疗的剂量;在天体物理、半导体物理、等离子体物理、宇宙线簇射、气体放电物理等学科中,输运理论被用来研究中子、光子、电子和等离子等粒子的输运问题。通常有两类数值方法来求解Boltzmann输运方程。第一类是确定性方法,包括时间的差分,空间的差分方法、有限元方法,能群的多群近似,角方向的离散纵标方法、球谐函数法等。第二类是非确定性方法或称为蒙特卡罗方法,该方法通过模拟单个粒子的历史,根据许多个粒子历史的综合信息来得到想要的结果。传统的高性能计算机一般采用商用通用处理器,在构造大规模并行计算系统时将面临系统效率、功耗、系统的维护和成本等多方面的挑战。近年来,异构体系结构开始成为构造超级计算机系统的一种趋势。与传统的并行计算机系统相比,除处理器核间的多核并行及隐含于硬件的指令级并行外,异构计算系统的具有显式SIMD微向量数据级并行特征。在粒子输运实际应用问题模拟计算中,未知粒子子通量定义在能量、时间、单位球速度相空间和高维几何空间上,其近似求解需要处理多种介质、多群、大变形、复杂的初值与边值条件等问题,两类计算方法都需要非常巨大的计算资源。同时,以GPU为代表异构计算系统为解决科学计算应用问题方面提供巨大的数据级并行计算能力。因此,组织面向异构体系结构的粒子输运方程的可扩展并行算法研究是非常必要的。本文面向异构体系结构,以粒子输运确定性和非确定性计算方法为重点,开展粒子输运数据级并行算法研究。本文取得的研究成果主要包括以下几个方面:1.提出了三维笛卡尔几何结构化网格粒子输运数据级并行算法,充分挖掘了通量扫描中有限并行度,开发了网格单元内部计算的并行性。在该算法中,求解递归离散纵标方程被有效并行化,并充分利用GPU的硬件存储结构提高访存速度和减低缓存失效率。数值实验结果表明,对于不进行粒子通量修正的问题模型,GPU与多核CPU相比能够获得2.56到8.14倍的加速效果;对于进行通量修正的问题模型,GPU能够获得1.23倍的性能提升。2.提出了二维圆柱拉格朗日坐标系下基于间断有限元离散纵标方法的数据级并行算法,把数值算法并行性抽象成波阵面并行,把波阵面、波阵面内部的可并发计算的网格单元和能群,与CUDA线程执行模型的核心、线程块和线程作一对一的映射。把整个输运扫描过程分割成二个部分:预扫描算法确定扫描计算顺序,并行通量扫描进行实际的计算。对预扫描算法的可行性、整个通量扫描算法的并行度进行分析,提出从循环展开和分割的角度进行层次式异构并行算法设计的设计方法。数值实验结果表明,GPU与CPU单核相比,能够获得11.03到17.96的加速效果。3.提出了基于MCNP的非确定粒子输运数据级并行算法,克服多线程并行带来的访存冲突问题,设计了满足GPU全局内存合并访存需求和大规模非确定粒子输运模拟要求的新型数据结构。针对GPU硬件结构和非确定粒子输运计算特征设计了相应的优化方法,包括合理使用GPU内存层次结构和精简GPU核心程序代码等,并给出并行伪随机数发生器和方向角分布抽样的示例。数值实验结果表明,GPU与CPU单核相比,能够获得16.3到23.67的加速效果。4.在上述粒子输运异构算法的基础上,设计面向异构体系结构的粒子输运可扩展并行框架。对框架的层次式结构设计、异构类型定义、数据结构设计、模块设计、接口设计等进行描述。并给出多GPU上三维结构化网格粒子输运和CPU/GPU异构平台上MC基准程序两个测试用例,该并行框架能提供高效的并行处理能力并屏蔽相应的实现细节。综上所述,本文针对异构体系结构上粒子输运可扩展并行计算提出了有效的解决方案,对于推进异构体系结构上粒子输运可扩展并行计算的理论研究和实用化具有理论价值与应用价值。