基于MPI+OpenMP混合编程模式的大规模颗粒两相流LBM并行模拟
发布时间:2021-09-02 21:11
针对大规模三维颗粒两相流全尺度模拟并行计算问题,该文采用MPI+OpenMP混合编程模式,其中机群节点采用MPI并行计算,节点内部采用OpenMP进行细粒化的并行计算,并根据格子Boltzmann方法(LBM)颗粒两相流的特点进行OpenMP程序并行优化设计,提出了一种适用于大量颗粒的三维颗粒两相流LBM并行计算模型。以颗粒沉积问题为例,在集群计算机平台对并行算法的加速性能进行测试。计算结果表明:该算法具有良好的加速比及扩展性,并且其计算量具有颗粒数量不敏感的优点,适用于大规模多颗粒两相流问题的研究。
【文章来源】:清华大学学报(自然科学版). 2019,59(10)北大核心EICSCD
【文章页数】:7 页
【部分图文】:
图2计算区域划分及信息通信
上所述,本模型将颗粒计算的大部分环节进行了OpenMP并行设计,整个颗粒两相流并行计算的程序框架如图3所示。其中,形成颗粒链表结构需要根据颗粒位置进行顺序链接,此外颗粒之间相互作用存在前后两个颗粒相互作用关系,这两部分很难借助并行计算加速,并且其计算量不大,因此未采用OpenMP并行加速。图3程序计算框图3计算结果与讨论为验证模型计算的准确性,以单个颗粒沉降为例进行计算,并与文[32]中实验结果进行对比。如图4所示,计算区域为10cm×10cm×6cm,颗粒直径为Dp=3.0cm,颗粒密度ρp=1.12g/cm3,颗粒初始位于(5cm,5cm,12.75cm)。选择4组不同流体密度ρf(g/cm3)和黏度μ[g/(cm·s)]的颗粒进行计算。图4三维颗粒沉降示意图Case1:0.97g/cm3,3.73g/(cm·s);Case2:0.965g/cm3,2.12g/(cm·s);Case3:0.962g/cm3,1.13g/(cm·s);Case4:0.96g/cm3,0.58g/(cm·s)。在LBM中选择尺寸为200×200×320的计算网格,松弛因子τ=0.6,并采用固壁边界。如图5所示,仿真计算结果与实验结果[32]基本吻合。本文进一步以多颗粒沉降问题为例测试所提出的并行算法。选择尺寸为1.5cm×1.5cm×3.0cm的微通道,颗粒直径
何强,等:基于MPI+OpenMP混合编程模式的大规模颗粒两相流LBM并行模拟851图5仿真计算与实验结果[32]对比分别进行1×1×1、1×2×2、2×2×2、2×2×3、2×3×3的均匀划分,然后对每个子区域单独分配一个节点。计算1000个子步。图6为计算过程中某一时刻的颗粒分布及流场流线图。图6(网络版彩图)颗粒分布及流场流线示例本文采用加速比和加速效率来度量模型的并行性能。加速比为同一个任务在单处理器串行运行和多处理器并行运行时执行时间的比率,用来衡量并行系统或程序并行化的性能和效果,其定义为Sp=T1/Tp;派生出的加速效率的定义为Ep=Sp/p。其中:T1为程序单核串行的执行时间,Tp为当有p个处理器时的执行时间。如图7a所示,并行算法的采用大幅缩短了计算时间,并且可以发现对于不同颗粒浓度的算例,其计算求解时间相差不大。程序并行加速比如图7b所示,当颗粒达到一定数量之后,颗粒数量对并行效率的影响降低。从图7c可以看出,对于不同颗粒浓度的情形,加速效率均在0.5之上,说明本文并行算法的加速效果较好。图7并行性能
本文编号:3379742
【文章来源】:清华大学学报(自然科学版). 2019,59(10)北大核心EICSCD
【文章页数】:7 页
【部分图文】:
图2计算区域划分及信息通信
上所述,本模型将颗粒计算的大部分环节进行了OpenMP并行设计,整个颗粒两相流并行计算的程序框架如图3所示。其中,形成颗粒链表结构需要根据颗粒位置进行顺序链接,此外颗粒之间相互作用存在前后两个颗粒相互作用关系,这两部分很难借助并行计算加速,并且其计算量不大,因此未采用OpenMP并行加速。图3程序计算框图3计算结果与讨论为验证模型计算的准确性,以单个颗粒沉降为例进行计算,并与文[32]中实验结果进行对比。如图4所示,计算区域为10cm×10cm×6cm,颗粒直径为Dp=3.0cm,颗粒密度ρp=1.12g/cm3,颗粒初始位于(5cm,5cm,12.75cm)。选择4组不同流体密度ρf(g/cm3)和黏度μ[g/(cm·s)]的颗粒进行计算。图4三维颗粒沉降示意图Case1:0.97g/cm3,3.73g/(cm·s);Case2:0.965g/cm3,2.12g/(cm·s);Case3:0.962g/cm3,1.13g/(cm·s);Case4:0.96g/cm3,0.58g/(cm·s)。在LBM中选择尺寸为200×200×320的计算网格,松弛因子τ=0.6,并采用固壁边界。如图5所示,仿真计算结果与实验结果[32]基本吻合。本文进一步以多颗粒沉降问题为例测试所提出的并行算法。选择尺寸为1.5cm×1.5cm×3.0cm的微通道,颗粒直径
何强,等:基于MPI+OpenMP混合编程模式的大规模颗粒两相流LBM并行模拟851图5仿真计算与实验结果[32]对比分别进行1×1×1、1×2×2、2×2×2、2×2×3、2×3×3的均匀划分,然后对每个子区域单独分配一个节点。计算1000个子步。图6为计算过程中某一时刻的颗粒分布及流场流线图。图6(网络版彩图)颗粒分布及流场流线示例本文采用加速比和加速效率来度量模型的并行性能。加速比为同一个任务在单处理器串行运行和多处理器并行运行时执行时间的比率,用来衡量并行系统或程序并行化的性能和效果,其定义为Sp=T1/Tp;派生出的加速效率的定义为Ep=Sp/p。其中:T1为程序单核串行的执行时间,Tp为当有p个处理器时的执行时间。如图7a所示,并行算法的采用大幅缩短了计算时间,并且可以发现对于不同颗粒浓度的算例,其计算求解时间相差不大。程序并行加速比如图7b所示,当颗粒达到一定数量之后,颗粒数量对并行效率的影响降低。从图7c可以看出,对于不同颗粒浓度的情形,加速效率均在0.5之上,说明本文并行算法的加速效果较好。图7并行性能
本文编号:3379742
本文链接:https://www.wllwen.com/kejilunwen/lxlw/3379742.html