MPI(Message Passing Interface) 主流的两个开源软件分别是OpenMPI和MPICH (Singularity同时支持)。
*参考链接:https://sylabs.io/guides/3.3/user-guide/mpi.html
基本想法:要执行SIngularity
容器的MPI
代码时,使用mpiexec
类似命令去调用singularity
命令。容器外部的MPI
进程会和容器内的MPI
进行协作,容器内的MPI代码会实例化任务。
流程如下:
- The
MPI launcher
(e.g., mpirun, mpiexec) is called by the user directly from ashell
etc. . - The
MPI
then calls the process management daemon (ORTED
); theORTED
process launches the Singularity container requested by theMPI launcher
command, as such mpirun. Singularity
builds the container and namespace environment; singularity then launches theMPI application
within the container.- The
MPI application
loads theMPI libraries
. - The
MPI libraries
connect back to theORTED
process via the Process Management Interface (PMI).