论文部分内容阅读
LARED-P是一种采用粒子云网格法实现三维激光等离子体粒子模拟的重要模拟程序,对于深入理解超强激光在低密度等离子体中的传播特征及复杂的激光等离子体相互作用的过程,研究受控热核聚变具有重要意义。在实际应用中,LARED-P程序处理的问题规模大,且所需计算的时间步较多,导致了所需的计算时间很长,往往需要数天时间。目前,在异构系统上利用加速部件加速这种耗时的典型应用,对于计算科学家具有重大意义。Intel公司最新推出的众核(MIC)产品—Intel Xeon Phi,具有宽向量和核数多的体系结构特征,能够有效加速计算规则的应用程序。研究利用Intel Xeon Phi对LARED-P程序进行加速的关键技术,对于提高粒子模拟的计算效率,降低模拟成本,具有重要的意义。本文针对Intel Xeon Phi提供的两种主要运行模式——Native模式与Offload模式,重点对LARED-P中的两部分主要计算任务即粒子运动方程和粒子云方程进行了加速研究。突破了LARED-P程序中的一些不利于并行的计算特性,实现了在Intel Xeon Phi上的LARED-P加速,取得了良好的效果。主要工作包括:(1)提出了LARED-P程序在Native模式下的多个加速优化关键技术。改进了LARED-P程序在MIC上的多线程并行化方法:在突破串行程序中粒子索引与网格索引之间的依赖关系时,针对传统方法中建立数组用来记录每个网格的首粒子索引存在冗余的问题,提出建立数组用来存储每个线程分得的网格块中第一块网格的首粒子索引,减少了索引数组规模,提高了网格处理速度;针对粒子不断运动,线程之间负载不均衡的特点,提出了基于粒子的负载均衡算法,改善了线程间的负载不均衡。(2)针对LARED-P算法的访存局部性差的问题,利用面向MIC的循环分块和预取技术对LARED-P进行访存优化,提高了LARED-P程序在MIC上的访存局部性。(3)提出了向量化方法的使用准则,并利用准则实现了LARED-P算法在MIC上的向量化工作,充分利用了MIC的宽向量特性。利用以上多个优化关键技术,实现了LARED-P在MIC上Native运行模式下的加速,获得了相对于CPU 2.4倍的加速比。(4)提出了LARED-P程序在Offload模式下的负载动态划分和双缓冲算法。传统的Offload模式下,当MIC进行计算时,CPU处于空转状态,浪费了CPU的计算能力。本文设计并实现了一个Offload模式下的负载动态调节系统,系统实现了CPU与Intel Xeon Phi间的负载动态均衡划分。同时,利用平衡空间以及阶梯式负载调节数组,削弱了硬件性能波动对LARED-P程序在进行负载划分时的影响。又加快了负载均衡的收敛速度。(5)为了解决Offload模式下CPU和MIC间通信开销大的问题,利用冗余传输和中间数组,提出了突破LARED-P程序数据依赖关系的双缓冲技术,实现了数据通信和计算的重叠,隐藏了传输延迟。这两种优化最终使得LARED-P程序在Offload模式下获得了49.4%的性能提升,获得了相对于CPU2.9倍的加速比。