Openfoam 并行命令指定节点进程数?



  • 我采用的并行命令指定了每一个节点的进程:
    mpiexec -np 64 -npernode 16 *******
    但是运行的时候,提示我:这个-npernode 命令太老了,mpi 不支持


    系统输出的提示如下:
    Command line option
    Deprecated : – npernode ,-npernode
    Replacement: --may-by ,pp:N:node

    Equivalent Mac parameter
    Deprecated : rmaps_base_n_pernode, ramps_ppr_n_pernode
    Replacement: rmaps_base_mapping_policy:ppr:N:node


    所以我应该如何修改我的并行命令,实现指定每个节点进程的目的?
    除了修改并行命令,Equivalent Mac parameter 是指修改哪里呢?


  • 版主

    提交命令和你的操纵系统所用的软件版本有密切关系。

    我在登录节点做一些小调试的时候经常用到:

    $ mpirun -np 8 pisoFoam -parallel

    如果是要提交到计算平台的排队系统里:

    我会用类似:

    $ sqsub -q mpi -n 48 -r 24h -o pisoFoam_logFile.%J -e pisoFoam_Re3_logFile.%J --mpp 5GB pisoFoam -parallel

    不过不同的计算中心也有自己的一套,比如另外一种提交方式:
    在case 文档里写好提交脚本,这个bash脚本里面包含了类似指令:
    mpiexec --mca mpi_warn_on_fork 0 -n 48 pisoFoam -parallel > pisoFoam_DES_48_${PBS_JOBID}.out
    然后在case目录下:
    bqsub -q qwork -l walltime=00:10:00 -l nodes=2:ppn=24 test.pbs

    不同的计算平台还是有不一样的地方,目前我遇到的就是这两种提交并行计算指令的。



  • 谢谢版主的回复,十分感激。
    mpiexec -np 64 -npernode 16 ******* 命令中“-npernode 16 ” 不好用,可以删除,按照openfoam 教材,写个machines 文件,并指定每个节点的进程数:
    node1 cpu=16
    node2
    也可以有效解决问题


登录后回复
 

与 CFD中文网 的连接断开,我们正在尝试重连,请耐心等待