16

我正在使用由 slurm 管理的集群来运行一些纱线/hadoop 基准测试。为此,我在 slurm 分配的节点上启动 hadoop 服务器,然后在它们上运行基准测试。我意识到这不是运行生产 hadoop 集群的预期方式,但需要。

为此,我首先编写了一个与 srun eg 一起运行的脚本srun -N 4 setup.sh。该脚本编写配置文件并在分配的节点上启动服务器,编号最小的机器充当主节点。这一切都有效,我能够运行应用程序。

但是,因为我想启动服务器一次,然后在它们上启动多个应用程序,而不是在开始时重新启动/编码所有内容,所以我想salloc改用它。我原以为这将是一个简单的运行salloc -N 4然后运行的情况srun setup.sh。不幸的是,这不起作用,因为不同的服务器无法相互通信。有人可以向我解释一下使用srun和使用salloc之间的操作环境有什么区别srun吗?

非常感谢

丹尼尔

4

1 回答 1

9

来自slurm-users 邮件列表

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

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

于 2014-10-27T07:24:18.057 回答