Singularity容器中MPI ring_c运行异常问题及解决方法
Singularity容器跨环境MPI执行卡死排查与解决
问题现象
- 在Ubuntu Bionic Singularity容器内安装OpenMPI 4.1.2与MPICH 4.1.2,编译测试程序
ring_c后:- 主机本地、容器内直接执行
mpiexec -np 2 ring_c均运行正常 - 执行
mpiexec -np 2 singularity exec container.sif /path/to/container/ring_c时程序卡死,重复输出单进程日志且无法推进 - 容器内执行
mpiexec ./ring_c(未指定-np参数)时程序挂起,主机环境无此问题
- 主机本地、容器内直接执行
排查过程
使用ldd命令分别对比主机和容器内ring_c的依赖库,发现主机与容器的MPI库不匹配:容器内的OpenMPI是基于MPICH编译的,但主机执行时未加载MPICH环境模块。
解决方案
在主机环境中加载MPICH模块后,重新执行跨容器的MPI命令,程序恢复正常运行。
内容的提问来源于stack exchange,提问作者Astro.Bacon
相关产品推荐
相关产品推荐

