Slurm:在 salloc 和 srun 下执行的代码有什么区别?

18
我正在使用由slurm管理的集群来运行一些yarn/hadoop基准测试。为了做到这一点,我在由slurm分配的节点上启动hadoop服务器,然后在它们上面运行基准测试。我意识到这不是运行生产hadoop集群的预期方式,但必须这样做。
为了做到这一点,我首先编写了一个脚本,使用srun运行,例如srun -N 4 setup.sh。该脚本编写配置文件并在分配的节点上启动服务器,最小编号的机器充当主服务器。这一切都有效,并且我能够运行应用程序。
然而,由于我想要启动服务器一次,然后在它们上面启动多个应用程序,而无需在开始时重新启动/编码所有内容,因此我想使用salloc代替。我认为这只是运行salloc -N 4,然后运行srun setup.sh的简单情况。不幸的是,这样做不起作用,因为不同的服务器无法相互通信。有人能解释一下使用srun和使用salloc,然后srun之间操作环境的区别吗?
非常感谢 丹尼尔
1个回答

10

来自 slurm-users 邮件列表

sbatch 和 salloc 为作业分配资源,而 srun 在这些资源上启动并行任务。当在作业分配中调用时,srun 将在一些或所有已分配的资源上启动并行任务。在这种情况下,srun 默认继承 sbatch 或 salloc 运行时的相关选项。然后,您可以(通常)提供 srun 不同的选项,这将覆盖默认接收到的选项。作业中每次调用 srun 称为作业步骤。

srun 也可以在作业分配之外调用。在这种情况下,srun 请求资源,并在这些资源被授予后,将任务作为单个作业步骤跨这些资源启动。


感谢您的澄清,Daniel。 - Daniel Goodman
16
请确保注明原始来源 https://groups.google.com/forum/#!topic/slurm-devel/wKaUEOzuQq4 。 - Ujjwal Aryan
之前的链接已经失效。新链接:https://groups.google.com/d/msg/slurm-users/wKaUEOzuQq4/oTTjHPWiybgJ - mgarey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接