为什么与slurm一起使用时mpirun的行为会如此?

时间:2018-07-12 07:42:57

标签: mpi openmpi slurm intel-mpi

我正在使用Intel MPI,将mpirun与slurm结合使用时遇到了一些令人困惑的行为。

如果我运行(在登录节点中)

mpirun -n 2 python -c "from mpi4py import MPI; print(MPI.COMM_WORLD.Get_rank())"

然后我得到预期的0和1打印输出。

但是,如果我salloc --time=30 --nodes=1并从交互式计算节点运行相同的mpirun,则会得到两个0,而不是预期的0和1。

然后,如果我将-n 2更改为-n 3(仍在计算节点中),我会因为昧地说srun: error: PMK_KVS_Barrier task count inconsistent (2 != 1)(加上很多其他内容)而收到很大的错误,但是我也不知道该怎么解释...

现在,基于this OpenMPI page,看来至少应为OpenMPI支持以下类型的操作:

  

具体来说,您可以在交互式SLURM分配中(通过salloc命令)启动Open MPI的mpirun,或者可以向SLURM提交脚本(通过sbatch命令),也可以通过srun“直接”启动MPI可执行文件。

也许我正在使用的Intel MPI实现不具有相同的支持,并且不能直接在恶劣的环境(?)中使用,但是我仍然想知道:{{1的本质是什么? }}并视(mpirun),这是产生的行为吗?为什么在第一个“ case”中打印两个0,在第二个“ case”中讨论的任务计数不一致?

0 个答案:

没有答案