gpt4 book ai didi

mpi - slurm 管理的集群上 mpirun 的任何用例?

转载 作者:行者123 更新时间:2023-12-05 03:05:09 34 4
gpt4 key购买 nike

我最近在看 this post关于mpirun对比mpiexecthis post关于srun对比sbatch , 但我想知道如何 mpirun与 slurm 和 srun 有关.

通常在我看到的例子中,文件被发送到 sbatchsrun <program>在它们中执行 MPI 程序,但我有时会看到使用 mpirun 的程序或 mpiexec反而。但是,我不明白为什么要这样做。如 another question I recently asked 中所示, 似乎使用 mpirunmpiexec可能会产生各种(依赖于实现?)错误,没有理由不使用 srun .

这是否准确,或者您是否有充分的理由想要使用 mpirunmpiexec而不是 srun在 slurm 管理的集群上执行程序?

最佳答案

这个问题在很大程度上取决于您使用的 MPI 的风格及其与 SLURM 的集成。

就我自己而言,我完全理解这是个人偏好的问题,我想说的是,必须在众多不同的集群和环境中穿梭,我会尽量减少可变性的范围。因此,如果 SLURM 在我运行的集群上可用,我将尝试通过 SLURM 和 sbatch 对我的代码进行所有运行时调整,并让 MPI 继承它们。

为此,我将定义我想要什么以及我希望如何从我的 #SBATCH 提交我的 MPI 代码提交参数:节点数、每个进程的核心数、每个节点的进程数等。然后,MPI 启动有望通过 mpirun、mpiexec 或 MPI 库提供的类似命令尽可能简单。例如,大多数(如果不是全部)最近的 MPI 库可以直接检测到作业已在 SLURM 中提交并继承 SLURM 的进程放置,而无需任何额外的工作。通常,例如对于 Intel MPI,我会使用 mpirun -bootstrap slurm <mycode>并且所有进程都按预期放置。事实上,这个-bootstrap slurm选项甚至可能不是必需的,但我保留它以防万一。

相反,使用 srun而不是图书馆的 mpirunmpiexec将要求 MPI 代码已与 SLURM 的流程管理库链接。这可能是也可能不是这种情况,所以这可能会或可能不会做你想要的。但更重要的是,即使它确实有效,与仅使用 MPI 默认启动器相比,它不会给您带来任何额外的优势,因为 SLURM 在通过 sbatch 提交作业时已经完成了流程管理。 .所以对我来说,除了极少数快速和脏测试的情况外,每当 SLURM 用于批处理调度时,srun不使用,而是 MPI 的 mpirunmpiexec默认命令。

关于mpi - slurm 管理的集群上 mpirun 的任何用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51300165/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com