论文部分内容阅读
N体问题是描述已知初始位置、速度和质量的多个物体在经典力学情况下的相互作用和后续运动,主要应用于天体力学、分子动力学和流体动力学等领域。随着多核CPU和众核加速器或协处理器异构平台的发展,N体问题基于异构平台的并行加速逐渐成为国内外高性能领域的研究热点。 目前,较具影响力的N体问题模拟程序都是国外软件,为了满足宇宙学、分子动力学等领域的大规模模拟需求,本文借助最新的异构硬件平台,实现了一套高效并行的N体问题计算程序。 首先,本文对N体问题的经典树算法—BH算法进行了研究,实现了BH算法的串行程序。其次,在研究了多核CPU和MIC异构硬件平台的基础上,以MPI和OpenMP混合编程模型实现了BH算法的并行,并用正交递归二分法(ORB)对粒子空间区域进行划分,实现了进程之间负载均衡。然后,对CPU并行程序的重要模块采用抽样算法、cache优化等方式进行了优化。最后,对优化后的程序进行MIC加速,针对MIC硬件架构特征,以构建作用力节点列表等方式对算法进行了改进,并采用offload分载模式的CPU和MIC协同计算的方法对程序进行了加速。 在多核CPU节点上,优化后的程序性能是优化前的2倍以上;在多核CPU+MIC节点上,程序以CPU和MIC协同计算的模式能获得多核CPU节点上性能的1.7倍。并且,CPU和MIC协同计算的程序具有较好的扩展性,计算粒子规模达到上亿时,可扩展到32个节点共4480核心(640个CPU核心和3840个MIC核心)。