我们有一个具有 32 个计算节点的 IBM HPC 4.2。我们确实编译并安装了支持 lsf 的 Openmpi 1.10.1。
问题:当我们在 lsf 下使用 IBM MPI(与平台集成的 MPI 或 PMPI)和 Openmpi 时,我们的行为有所不同。
示例:我确实使用两种实现编译了 hello_world.c mpi 示例,当我在没有 lsb(没有 bsub)的情况下启动执行时,我得到了
PMPI:mpirun -np 4 -hostlist "compute000 compute001" ./hello_world_pmpi.exe
你好世界!我是 compute000 上 4 人中的 1 人
你好世界!我在 compute001 上是 2 of 4
你好世界!我在 compute001 上是 3 of 4
你好世界!我在 compute000 上是 0 of 4
开放式:mpirun -np 4 --host "compute000,compute001" --mca btl self,sm --mca mtl psm ./hello_world_ompi.exe
你好世界!我是 compute000 上 4 人中的 1 人
你好世界!我在 compute000 上是 2 of 4
你好世界!我在 compute001 上是 3 of 4
你好世界!我在 compute001 上是 0 of 4
这是逻辑,但是当我使用 lsf 时,事情会随着 PMPI 而改变,这更奇怪!!!!我得到
PMPI:bsub -n 4 -R "span[ptile=2]" -o pmpi-%J.out mpirun ./hello_world_pmpi.exe
猫 pmpi-xxx.out ...
你好世界!我在 compute017 上是 0 of 1
欧派:bsub -n 4 -R "span[ptile=2]" -o ompi-%J.out mpirun --mca btl self,sm --mca mtl psm ./hello_world_ompi.exe
猫 pmpi-xxx.out ...
**你好世界!我是 compute005 上 4 人中的 1 人
你好世界!我是 compute010 上 4 中的 2
你好世界!我在 compute010 上是 3 of 4
你好世界!我在 compute005 上是 4 中的 0 **
似乎只启动了一个 PMPI 实例,而不是 4 个。
我对 IMB(英特尔基准测试)和 HPCC 有同样的问题,他们抱怨缺少进程,没有 lsf 他们都可以正常工作,使用 lsf,只有 openmpi 可以正常工作。
任何想法?
提前致谢