背景: 我已经在 Singularity 容器中成功创建了基于 MPI 的应用程序,并使用 Singularity 文档推荐的混合模式执行它们。这要求我在容器和主机 O/S 上都安装了“兼容”版本的 MPI。如果我要跨多个节点运行作业,我理解为什么这是必要的。
但是在我们的用例中,我们的互连速度很慢,因此我们在多个节点上运行作业几乎没有意义。混合模式迫使我跟踪每个容器中内置的每个 MPI 版本,这些容器可能曾经用于确保主机 O/S 上可用的正确 MPI。我首先使用容器的全部原因是为了避免不得不处理这种版本依赖的麻烦。
我的问题: 如果我对 MPI 应用程序只能在单个物理节点内执行的限制感到满意,有没有办法让我在 Singularity 容器中构建 MPI 应用程序,而不依赖于在主机上安装任何东西 O /S?