rapidCFD构建使用实践

rapidCFD构建使用实践,第1张

rapidclass="superseo">CFD

rapidCFD项目基于OpenFOAM 2.3.x开发,利用Thrust库,增添OpenFOAM的CUDA支持,目的是提高求解器速度。该项目对OpenFOAM原始项目改动较大,从前处理到矩阵元计算,到迭代求解器,都涉及Thrust库使用。

rapidCFD通过MPI启动分布式并行运行模式,支持多卡多机运行.

rapidCFD开发者主要使用CUDA8.0+K20 GPU开发测试环境,有些老旧。在CUDA11.2上环境上,需要对项目几处进行修改,可成功编译构建,对测试用例运行成功。


编译构建
  • 编译环境

    环境说明备注
    CPUXeon Gold 52206核
    CentOS 8.5/gcc 8.5.0
    CUDA 11.2A40 vGPU显存4G,计算能力8.6
    OpenMPI v4.1.1

  • 构建细节, 变动说明

    变动说明备注
    etc/bashrcexport WM_MPLIB=SYSTEMOPENMPI使用系统openmpi
    wmake/rules/linux64Nvcc/ccc = nvcc -ccbin=mpicxx -m64 -arch=sm_86设置c编译器
    wmake/rules/linux64Nvcc/c++CC = nvcc -ccbin=mpicxx -Xptxas -dlcm-cg -std=c++14 -m64 -arch=sm_86设置c++编译器
    src/dynamicFvMesh/solidBodyMotionFvMesh/multiSolidBodyMotionFvMesh.C[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U653BVCz-1651543675288)(stuff/rapidcdf.1.png)]]]forAllConstIter编译报错,需要加typename关键字
    src/OpenFOAM/matrices/lduMatrix/preconditioners/AINVPreconditioner/AINVPreconditioner.C[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lxX3DkBn-1651543577179)(stuff/rapidcdf.2.png)]模板函数实例化,否则连接会报找不到符号错误

测试用例运行说明

cavity用例附带有生成的网格,运行成功。

damBreak-rapidCFD用例的网格用OpenFOAM-v2112的blockMesh工具生成,在单机单卡环境下运行成功。该用例支持并行区域划分,可在多卡多机环境运行。


网络资源
  • rapidCFD Github
  • rapidCFD Test Github
  • problem with multi GPU execution

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/797730.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存