3

背景: 我已经在 Singularity 容器中成功创建了基于 MPI 的应用程序,并使用 Singularity 文档推荐的混合模式执行它们。这要求我在容器和主机 O/S 上都安装了“兼容”版本的 MPI。如果我要跨多个节点运行作业,我理解为什么这是必要的。

但是在我们的用例中,我们的互连速度很慢,因此我们在多个节点上运行作业几乎没有意义。混合模式迫使我跟踪每个容器中内置的每个 MPI 版本,这些容器可能曾经用于确保主机 O/S 上可用的正确 MPI。我首先使用容器的全部原因是为了避免不得不处理这种版本依赖的麻烦。

我的问题: 如果我对 MPI 应用程序只能在单个物理节点内执行的限制感到满意,有没有办法让我在 Singularity 容器中构建 MPI 应用程序,而不依赖于在主机上安装任何东西 O /S?

4

1 回答 1

0

我不是 MPI 上最强的,但如果您不尝试与其他节点(或由同一计算节点上的其他进程产生的作业)通信,您应该能够使用singularity exec mpi_image.sif mpirun ....

修改 Singularity 定义以便能够将图像作为实例运行也可能很有用。它使奇异点的行为更像 Docker,允许您singularity shell进入正在运行的执行环境。当做一些没有很好记录的事情时,这大大简化了调试。

于 2020-02-11T15:34:36.127 回答