如何在 OpenMPI 中用 --map-by 替换 --cpus-per-proc
How to replace --cpus-per-proc with --map-by in OpenMPI
我需要更新一些旧代码以使用最新版本的 OpenMPI,但我对新的 --map-by 系统感到非常困惑。特别是,我不确定如何替换 --cpus-per-proc N。
一些网站建议使用 --map-by node:pe=N,但是当我尝试这个时,它给了我不同的结果。
原命令为:
mpirun -np 3 --report-bindings --bind-to-core --cpus-per-proc 3 ./test.sh
给出:
[B/B/B/././././.] [./././././././.] [./././././././.] [./././././././.]
[./././././././.] [B/B/B/././././.] [./././././././.] [./././././././.]
[./././././././.] [./././././././.] [B/B/B/././././.] [./././././././.]
但是,当我使用命令时:
mpirun -np 3 --report-bindings --bind-to core --map-by node:pe=3 ./test.sh
输出为:
[B/B/B/././././.] [./././././././.] [./././././././.] [./././././././.]
[./././B/B/B/./.] [./././././././.] [./././././././.] [./././././././.]
[././././././B/B] [B/././././././.] [./././././././.] [./././././././.]
有人可以解释一下如何使用 --map-by 选项吗?
要将四个 MPI 进程分布在四个 CPU 套接字上,并将每个进程绑定到相应套接字的三个核心,请使用:
-n 4 --map-by socket:pe=3 --bind-to core
我需要更新一些旧代码以使用最新版本的 OpenMPI,但我对新的 --map-by 系统感到非常困惑。特别是,我不确定如何替换 --cpus-per-proc N。
一些网站建议使用 --map-by node:pe=N,但是当我尝试这个时,它给了我不同的结果。
原命令为:
mpirun -np 3 --report-bindings --bind-to-core --cpus-per-proc 3 ./test.sh
给出:
[B/B/B/././././.] [./././././././.] [./././././././.] [./././././././.]
[./././././././.] [B/B/B/././././.] [./././././././.] [./././././././.]
[./././././././.] [./././././././.] [B/B/B/././././.] [./././././././.]
但是,当我使用命令时:
mpirun -np 3 --report-bindings --bind-to core --map-by node:pe=3 ./test.sh
输出为:
[B/B/B/././././.] [./././././././.] [./././././././.] [./././././././.]
[./././B/B/B/./.] [./././././././.] [./././././././.] [./././././././.]
[././././././B/B] [B/././././././.] [./././././././.] [./././././././.]
有人可以解释一下如何使用 --map-by 选项吗?
要将四个 MPI 进程分布在四个 CPU 套接字上,并将每个进程绑定到相应套接字的三个核心,请使用:
-n 4 --map-by socket:pe=3 --bind-to core