如何在OpenMPI中使用--map-by替换--cpus-per-proc

时间:2016-04-07 22:46:22

标签: process mpi cpu openmpi affinity

我需要更新一些旧代码才能使用最新版本的OpenMPI,但我对新的--map-by系统感到困惑。特别是,我不知道如何替换--cpus-per-proc N.

有几个网站建议使用--map-by节点: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选项吗?

1 个答案:

答案 0 :(得分:1)

通过四个CPU插槽传播四个MPI进程,并将每个进程绑定到相应套接字使用的三个核心:

-n 4 --map-by socket:pe=3 --bind-to core