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

2w3kk1z5  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(529)

我使用slurm管理的集群来运行一些yarn/hadoop基准测试。为此,我在slurm分配的节点上启动hadoop服务器,然后在这些节点上运行基准测试。我意识到这不是运行生产hadoop集群的预期方式,但是必须这样做。
为此,我首先编写了一个使用srun-eg运行的脚本 srun -N 4 setup.sh . 此脚本写入配置文件并启动分配节点上的服务器,其中编号最低的计算机充当主服务器。这一切工作,我能够运行应用程序。
但是,由于我想启动一次服务器,然后在它们上启动多个应用程序,而不需要重新启动/编码一开始我想使用的所有内容 salloc 相反。我原以为这是一个简单的跑步案例 salloc -N 4 然后跑步 srun setup.sh . 不幸的是,这不起作用,因为不同的服务器无法相互通信。有谁能向我解释一下使用 srun 以及使用 salloc 那么 srun ?
非常感谢
丹尼尔

dfty9e19

dfty9e191#

从slurm用户邮件列表:
sbatch和salloc为作业分配资源,而srun跨这些资源启动并行任务。在作业分配中调用时,srun将跨部分或所有分配的资源启动并行任务。在这种情况下,srun默认继承它运行的sbatch或salloc的相关选项。然后,您可以(通常)提供srun不同的选项,这些选项将覆盖它默认接收的内容。作业中每次调用srun都称为作业步骤。
srun也可以在作业分配之外调用。在这种情况下,srun请求资源,并在授予这些资源时,作为单个作业和作业步骤跨这些资源启动任务。

相关问题