论文部分内容阅读
当前超大规模高性能计算机朝着商用处理器与计算加速器混合异构方向发展,与传统的并行计算机系统相比,计算性能有了较大改进。在2010年,Intel发布了MIC(集成众核架构)并行协处理器。MIC使用x86指令集,并支持传统的编程模型,如OpenMP、Intel Threading Building Blocks(TBB)。由于在性能和可编程性方面的优势,MIC得到了越来越多关注。众多研究人员都将MIC应用在了所研究的领域,并取得了很好的效果。粒子输运模拟在科学和工程领域具有重要应用,求解粒子输运方程,分为确定性和非确定性两种方法,而蒙特卡罗(Monte Carlo)方法是使用非确定性方法求解粒子输运方程重要的数值模拟方法之一。与确定性方法相比,Monte Carlo方法更适合求解具有某些复杂介质的粒子输运问题,但却需要很庞大的计算量,而以CPU/MIC为代表的混合异构计算机系统提供了强大的计算能力,因此研究面向异构系统的粒子输运MC模拟并行算法是非常必要的。本文以MCNP程序为基础,提出了一种面向CPU/MIC混合异构系统的粒子输运并行算法,研制了并行程序。主要工作如下:提出了一种基于MIC的并行线性同余伪随机数发生器。首先每个线程需要的随机数种子可在程序初始化时采用推导出的公式跳跃式快速生成,然后在MIC上的多个线程可利用随机数种子以多线程的方式生成随机数。在这一过程中,每个MIC线程可利用512位的向量化单元(VPU)进行算法的向量化操作,同时生成8个双精度浮点随机数,极大提高了生成速度。提出了一种基于MIC的粒子输运蒙特卡罗模拟的并行算法,针对MIC访存特点提出了适于程序并行的高效数据结构及基于静态分配的任务划分方法。相比运行在E5-2670 CPU上的MCNP串行程序,MCNP-MIC数据级并行算法获得8.6倍的加速比。提出一种针对CPU/MIC混合异构体系结构的粒子输运蒙特卡罗模拟的CPU/MIC协同算法,该算法设计出一种针对异构节点CPU和MIC不同计算能力的多级任务划分方法、多级随机数种子生成算法、多级归约算法。在拥有2块Xeon E5-2670 CPU和1块MIC卡的结点内进行了测试,结果表明该算法具有较高的性能。