我已经成功地在我的集群上执行了一个程序,使用
mpirun -np 1 ./my_program
我已经my_program
使用 Singularity 进行了容器化并制作了my_program.simg
. 该容器还包括与主机相同版本的 OpenMPI。我想让集群中的节点执行 Singularity 容器,所以我尝试了:
mpirun -np 1 \
singularity run my_program.simg
但是,这失败了:
[pn111:395108] PMIX ERROR: NOT-FOUND in file ../../../../../../../openmpi-3.1.3/opal/mca/pmix/pmix2x/pmix/src/server/pmix_server_ops.c at line 1865
[pn111:395108] PMIX ERROR: NOT-FOUND in file ../../../../../../../openmpi-3.1.3/opal/mca/pmix/pmix2x/pmix/src/server/pmix_server_ops.c at line 1865
[pn111:395108] PMIX ERROR: NOT-FOUND in file ../../../../../../../openmpi-3.1.3/opal/mca/pmix/pmix2x/pmix/src/server/pmix_server_ops.c at line 1865
我假设我需要向容器公开一些东西,以便它知道如何与 MPI 世界对话。是否有我需要绑定到容器中的套接字,或者我需要设置的环境变量,或者类似的东西?
Singularity 文档表明无需额外操作。
这个 GitHub issue可能有很好的建议,我会尝试的。