打开MPI:在超额订阅时使用绑定到核心

时间:2014-06-14 14:08:47

标签: mpi openmpi

我的问题是,在超额订阅时是否可以使用--bind-to-core标志?我正在使用OPEN MPI版本1.5.4并尝试使用以下因素进行超额订阅2(16个核心上的32个进程):

mpirun --bind-to-core --bynode --npersocket 32 --mca mpi_yield_when_idle 1 -n 32 ./$prog

但它给我一个错误:

32 total processes failed to start

但是,如果我不使用--bind-to-core,一切正常。这里的问题是什么?有可能解决吗?

1 个答案:

答案 0 :(得分:2)

-npersocket选项激活--bind-to-socket,这与--bind-to-core冲突。您可以通过编写 rankfile 来解决它 - 与主机文件非常相似,但它也包含每个等级的绑定信息。例如,要将4个进程绑定到主机localhost上的2个核心,可以使用以下rankfile:

rank 0=localhost slot=0
rank 1=localhost slot=0
rank 2=localhost slot=1
rank 3=localhost slot=1

使用mpiexec选项向--rankfile提供Rankfiles。有关详细信息,请参阅Open MPI documentation