BESIII实验软件事例级并行化研究
2021-10-28马震太张晓梅孙功星
马震太,张晓梅,孙功星
1.中国科学院 高能物理研究所,北京 100049
2.中国科学院大学,北京 100049
近年来随着高能物理作业所需资源的不断增长,通过不断增加时钟频率和分配更多物理机的时代将趋于终结,未来硬件的特点是更专业和更多的内核,尤其是异构资源,为充分利用多核的潜力,并行技术在高能物理领域势必得到广泛的应用。
并行计算以充分发挥硬件的计算能力为首要目标,具体实现时需结合体系结构选择相应的解决方案,常见的并行方法有:(1)区域分解法,把原问题的求解转化为若干子问题的求解。(2)功能分解法,将由不同功能组成的问题,按照其功能进行分解,并行求解。(3)流水线技术,常用的时间并行技术。(4)分而治之,把复杂问题划分为等价的小问题。按处理器处理数据的方式,又分为:(1)同步并行,在某一刻需要与其他处理器进行数据交换,才能继续执行。(2)异步并行,不需要处理器之间相互等待,充分发挥CPU效率[1]。
国内外常见的并行编程模型主要有以下几类:(1)共享内存模型,如OpenMP[2]、pthreads[3];(2)消息传递模型,MPI[4]、虚拟并行机[5];(3)数据并行模型,CUDA[6]、OpenCL[7]、MapReduce[8];(4)混合模型,如MPI+OpenMP模型[9]、MPI+CUDA模型[10]、大规模并行编程模型[11];(5)基于共享存储的任务并行编程模型,如fork-join框架、Cilk++、TPL[12]、TBB[13]。
北京谱仪(BESIII)是北京正负电子对撞机上的大型通用谱仪,BESIII离线软件是一个相当复杂的系统,包含了离线数据处理框架,模拟、重建、刻度等算法模块,使用了大量的外部库,涉及到多种编程语言;需要处理PB级别的数据量,所以并行方案的改善已迫在眉睫。……
