基于OPS的计算流体力学软件多平台自动并行*
2021-05-18车永刚徐传福王正华
王 巍,车永刚,徐传福,王正华
(国防科技大学计算机学院量子信息研究所兼高性能计算国家重点实验室,湖南 长沙 410073)
1 引言
当前,除了通用处理器之外,通用图形处理单元GPGPU(General-Purpose Graphic Processing Unit)、Intel集成众核MIC(Many Integrated Core)、通用数字信号处理器GPDSP(General- Purpose Digital Signal Processing)等加速部件被广泛应用于高性能计算机系统中,高性能计算机变得越来越异构和多样化[1 - 3]。因此,高性能计算应用软件的开发将面向多样化的体系结构。而高性能计算应用软件的生存期通常比硬件长得多[4],针对不同体系结构的并行编程与性能优化导致极大的开销。因此,使所研制的高性能计算应用软件具有性能可移植性(即代码无需经过大量修改或使用不同的编程语言重写,就可移植到不同体系结构平台上并获得可接受的性能),是发展高性能数值模拟的迫切需求[5]。
现今主流的并行软件开发方法是由开发人员根据软件的算法特点和流程等设计程序并行结构,在源代码中手工添加MPI、OpenMP、CUDA、OpenCL等并行编程语句的代码,进行手工并行编程。手工并行编程要求开发人员熟练掌握前述等并行编程规范和语言,并深入了解底层硬件体系结构才能编写高效率的代码,且开发工作量大、周期长,很难获得性能可移植性。
基于高性能库(如BLAS(Basic Linear Algebra Subroutine)、FFTW(Faster Fourier Transform in the West)等)编程的方法在一些情况下可以方便地获得性能可移植性,但是可用的高性能可移植库非常有限,并且对实际应用软件来说库调用通常只能覆盖其部分计算任务。基于可移植编程框架的方法是另一种途径。……
