OpenFOAM with OpenMP
using OpenMP in OpenFOAM
有时候在 OpenFOAM 编写一些算法,用不到自带的 mpi 库。
此时可以使用 OpenMP 来对基于 OpenFOAM 编写的代码进行加速。
用法很简单,首先加入头文件:
验证 OpenMP 并行是否生效,我们输出一下所使用的的核数:
|
然后就可以加入 OpenMP 的魔法了,例如对 for 循环进行加速:
|
最后在 Make/options 中,EXE_INC = \
的下面一行,插入:
-fopenmp \ |
使用前可以指定核数(否则使用机器的所有核):
export OMP_NUM_THREADS=20 |
或者在超算 slurm 脚本中指定:
export OMP_NUM_THREADS=$SLURM_NTASKS |
看完应该能够打造你自己的 OpenMP 并行应用了吧。