用OpenMP实现三维复杂渗流场的并行计算
现代计算流体力学所解决的问题越来越复杂,对计算能力的要求与日俱增,受元器件及工艺水平的限制,提高硬件的计算能力比较困难,而通过并行计算来提高计算性能可较好的解决这一问题[1]。
基于消息传递(MPI)的集群计算机能够实现渗流问题的并行计算,对大型问题能够提高运算速度并具有良好的可扩放性,但是部署、管理和维护的成本较高,对三维复杂问题的域分解比较困难,且当通信量增大时对并行效率有很大影响,同时,复杂的控制系统和网络的低可信性不利于大规模普及。近年来,随着超线程处理器和多核处理器技术的出现和广泛使用,基于多核的共享存储系统的并行计算成为新的研究热点[2―4]。
从系统性能来看,共享存储使得通信时间大大减少,这种结构特别适合需要大内存、高性能 CPU计算能力的应用场合。由于变量共享,该方法可以避免域分解的困难。同时,多核系统能够最大细化并行粒度,提高并行效率。尽管目前主流 PC 机仍然采用基于单 CPU 的双核芯片技术,但是 4 核 CPU已在市场上大量销售,相信不久的将来,更先进的多核 CPU 将会不断出现。设计单位、科研单位有能力、有条件配备多 CPU 的小型服务器或者工作站,单机多 CPU、多核高性能计算技术必将有着广阔的发展前景[5]。OpenMP 是一个共享存储系统的并行编程接口,是一些语言扩展的集合,它通常被实现为编译器指令,其建立在 Fortran 或者 C 语言、C++语言的基础上,由指导语言及库函数组成,用于与编译器和运行时系统进行交互,使用者可以通过控制并行程序的行为来完成任务。
国外对渗流并行数值模拟的研究开始较早,Wang[6―7]等采用并行迭代的Gauss-Seidel和SOR方法,进行了有自由面渗流的有限元并行计算,得到了超线性加速比。Mahinthakumar G[8]等使用有限元方法对地下水流动及输移系统进行了并行计算。Howington S E 等[9]开发了以 MPI 作为通信接口的地下水与地表水相互作用的联合模型。国内对于渗流分析的并行计算研究尚处于起步阶段,江春波[10]等首先对二维非恒定渗流进行了基于消息传递的有限元并行计算,得到了超线性加速比。杜晔华等[11]建立了基于 MPI 的微机机群系统,进行了有自由面渗流的有限元并行分析,表明基于 MPI 的并行计算能够对大型渗流问题进行快速精确的模拟。Boeriu[12]等总结出影响有限元并行程序性能的关键因素是通信和计算之间的均衡性。
本文针对三维复杂渗流场进行了有限元分析的并行计算。由于三维渗流场计算需要大量的网格与节点,使得有限元求解的计算量急剧增大,而OpenMP 最主要的并行来源即是循环结构[11],因此本文用共享存储系统的OpenMP编程接口将已有的串行程序改造为并行程序,实现了对三维渗流场求解的并行计算,其优点是简单、通用,有利于快速开发并行程序。在小型服务器上通过对电厂灰坝及某水库的三维稳定渗流的数值模拟,获得了较好的加速比,证明了 OpenMP 在三维复杂渗流场计算中能够很好的提高计算效率与计算速度。
相关文章
- 2024-01-25秒表检定测量不确定度的评定
- 2024-01-19电子束吸收剂量标准液体化学剂量测量系统的研究
- 2022-08-18现场总线技术解析与其发展趋势
- 2023-02-22三级建模微型机电系统多学科优化设计法
- 2021-12-25基于模糊神经网络的移动机器人沿墙导航控制设计
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。