以下文章来源于颗粒学报 ,作者江茂强等
文章精选
Accelerating fully resolved simulation of particle-laden flows on heterogeneous computer architectures
马匡,江茂强*,柳朝晖
Keywords: Lattice Boltzmann method; Immersed boundary method; Particle-laden flows; Heterogeneous acceleration; General Processing Units
DOI: 10.1016/j.partic.2022.12.010
颗粒悬浮流的全解析直接数值模拟(FR-DNS)可以精确解析颗粒悬浮流动流场,对开展气固两相流的机理研究以及相间模型构建具有重要意义。然而,这种模拟也带来计算规模大和计算速度慢的困难,开发可快速进行大尺度计算的数值方法是一个热点问题。
近日,华中科技大学柳朝晖教授团队在PARTICUOLOGY上发表研究论文[1],详细介绍了利用多GPU对颗粒悬浮流FR-DNS进行并行加速计算的方法及其验证和应用。读者可以通过该论文详细了解GPU加速FR-DNS计算的编程方法。欢迎感兴趣的读者扫描下方二维码或者点击文末“阅读原文”进入ScienceDirect官网阅读、下载!
Part.01
研究背景
颗粒悬浮流的FR-DNS采用比颗粒直径更小的网格(一般D/dx = O(10))进行模拟计算,可以直接数值求解流体流动、颗粒运动、颗粒碰撞以及颗粒-流体间的流体动力学耦合作用,对开展颗粒悬浮流的机理研究以及两相简化模型构建具有重要意义。然而,这种直接求解通常计算规模小、计算速度慢,开发大尺度、快速的FR-DNS方法是一个巨大的挑战。随着超级计算机硬件性能的发展,相对于传统CPU并行计算,采用GPU-CPU异构并行计算可以将计算速度提高上百倍;相对于前者,后者对于并行编程的实现以及性能优化带来了更多的挑战。
本文基于英伟达GPU和国产海光DCU两种加速卡,实现了大规模颗粒悬浮流FR-DNS多卡并行加速计算。
Part.02
研究方法
团队前期开发有大规模CPU并行计算的PFlows框架[2,3],PFlows采用C语言开发,该框架的特点是耦合格子Boltzmann方法、浸入边界方法和离散单元法,基于两套固定欧拉网格和一套移动拉格朗日点网格,分别模拟流体流动、颗粒碰撞和流体-颗粒相互作用。进一步进行异构并行计算开发,如图1所示,所有计算都通过细粒度并行技术进行加速,在GPU上使用CUDA,在DCU卡上进一步使用HIP,即每个流体网格点、每个浸入边界点、每个颗粒运动和每个颗粒碰撞对的计算分别由一个计算机线程负责。对LBM分布函数采用SOA的数据存储格式和融合存储器访问以最大限度地利用硬件带宽,对浸入边界点的数据采用了共享存储的并行规约以减少计算颗粒受流体力时对全局存储器的访问。采用MPI计算实现多卡CPU-GPU/DCU的异构并行计算。相邻处理器之间的通信通过与计算重叠而进行隐藏。
图1. PFlows的CPU-GPU异构并行计算策略
图2为利用英伟达CUDA工具包提供的可视化性能分析器nvvp获得的4块GPU卡的详细计算过程,计算网格量和颗粒数分别为约1678万和9216个。从上到下显示了四卡并行计算过程,其中包括五个通信部分和六个计算部分。每个通信部分包含三个顺序步骤,即从GPU到CPU的数据复制、CPU之间的通信以及从CPU到GPU的数据复制。两个数据复制步骤被涂成金色。计算部分用其他不同的颜色绘制。可以看出,几乎所有的进程间通信都是在计算过程中开始和完成的,即通信被计算很好地隐藏起来。
图2. PFlows的GPU异构并行计算与通讯隐藏示意
Part.03
验证与性能测试
采用顶盖驱动方腔流、封闭矩形腔体内颗粒群沉降等算例对GPU版的PFlows求解器进行了验证。分别采用英伟达GPU V100卡、海光DCU卡和海光32核CPU C86 7185的计算性能进行了对比,采用每秒10亿网格更新率(GLUPS)表征计算速度。如图3所示,在不同网格量和不同颗粒体积分数下,采用单卡计算时,DCU和V100分别能达到1.1-1.5GLUPS和1.4-1.9GLUPS,前者约为后者80%的性能,相当于约7倍32核CPU的性能。
图3. 英伟达V100卡、曙光DCU卡与海光CPU(32核)计算性能对比
进一步的,对海光DCU多卡并行计算性能进行了测试,其中弱并行测试单卡计算网格数约为420万,最高测试网格数达到10亿网格、100万颗粒。如图4所示,256卡的计算性能达到179GLUPS,在128卡时5%颗粒体积分数的并行效率超过60%,更高的颗粒体积分数下,并行效率有所下降,需要进一步进行并行优化。
图4. 曙光DCU多卡并行计算性能:(a)加速比,(b)并行效率
Part.04
模拟应用
采用32块DCU卡,对周期性边界条件下大规模密相气固两相流自由沉降进行了直接数值模拟研究,计算网格和颗粒数分别为16亿和160万,对应真实计算域大小为0.09375 m × 0.0375 m,颗粒体积分数为0.2。仅用10天的时间模拟了1s的物理时间。如图5所示,模拟结果可以明显看到颗粒多尺度聚团结构,与文献[4]相比,本文中的聚团更大并且更密实,这是因为本文模拟的颗粒体积分数为0.2,大于文献[4]中的0.1,更大的颗粒体积分数使得悬浮颗粒系统变的更不稳定,因此形成更大更密实的聚团结构。
图5. 16亿网格+160万颗粒的气固两相流全解析直接数值模拟
Part.05
参考文献
[1] Ma K., Jiang M.and Liu Z. (2023). Particulology, 81, 25-37. https://doi.org/10.1016/j.partic.2022.12.010.
[2] Jiang, M., Li, J., & Liu, Z. (2022). Computers & Fluids, 237, 105322. https://doi.org/10.1016/j.compfluid.2022.105322.
[3] Jiang, M., & Liu, Z. (2019). Journal of Computational Physics, 390, 203-231. https://doi.org/10.1016/j.jcp.2019.03.047.
[4] Xiong, Q., et al. (2012). Chemical Engineering Science, 71, 422-430. https://doi.org/10.1016/j.ces.2011.10.059.
Part.06
作者简介
马匡
马匡,第一作者,华中科技大学硕士,主要从事格子玻尔兹曼方法异构并行算法研究。
江茂强
江茂强,通讯作者,武汉理工大学船海与能源动力工程学院青年教师。分别在浙江大学和华中科技大学获得硕士和博士学位,并先后在美国康奈尔大学和新加坡国立大学访学。主要从事气液固颗粒及流固耦合的多相复杂流动模拟研究,以及开发基于异构并行计算和AI加速计算的先进计算方法研究。
柳朝晖
柳朝晖,华中科技大学教授,低碳燃烧团队负责人。主持国家重点研发、973、863、支撑、自科基金等项目20余项,牵头实施了中国富氧燃烧碳捕集技术“0.3MW-3MW-35MW”研发示范路线图。近年来致力于工业领域富氧燃烧,高性能燃烧模拟软件,电站锅炉数字孪生等研究。已撰写专著2部,发表论文240余篇,授权发明专利30余项。成果入选国家“十二五”科技创新成就展,获国家自然科学二等奖1项、省部级一、二等奖各3项。
文章信息
Ma, K., Jiang, M., & Liu, Z. (2023). Accelerating fully resolved simulation of particle-laden flows on heterogeneous computer architectures. Particuology, 81, 25-37. https://doi.org/10.1016/j.partic.2022.12.010
转自:“蔻享学术”微信公众号
如有侵权,请联系本站删除!