gpt4 book ai didi

Slurm 问题 : Array Job VS srun in a sbatch

转载 作者:行者123 更新时间:2023-12-01 23:20:39 25 4
gpt4 key购买 nike

Slurm上以下两种并行化方案有什么区别?

方案一

运行 sbatch script.sh

#!/bin/bash
#SBATCH --ntasks=8
## more options
srun echo hello

这会召唤 8 个运行 echo hello 的作业

方案二
我已经使用数组作业完成了类似的事情。
#!/bin/bash

#SBATCH --job-name=arrayJob
#SBATCH --output=arrayJob_%A_%a.out
#SBATCH --error=arrayJob_%A_%a.err
#SBATCH --array=1-8
#SBATCH --time=01:00:00
#SBATCH --ntasks=1

# Print this sub-job's task ID
echo hello

这两种方案有什么区别吗?他们似乎都完成了同样的事情。

最佳答案

方案 1 是一项单一工作(有 8 个任务),而方案 2 是 8 个不同的工作(每个工作有一个任务)。在第一种情况下,所有任务将同时调度,而在第二种情况下,8 个任务将相互独立调度。

对于作业数组(方案 2),如果 8 个 CPU 一次可用,它们将同时启动,但如果最初只有 4 个 CPU 可用,则将运行 4 个任务,其他 4 个待处理。当最初的 4 个完成后,其他 4 个开始。它通常用于 embarrassingly parallel 的情况作业,其中进程不需要通信或同步,例如将相同的程序应用于文件列表。

相比之下,对于单个作业(方案 1),Slurm 将同时启动 8 个任务,因此需要 8 个 CPU 才能同时可用。这通常仅用于进程需要相互通信的并行作业,例如使用 Message Passing Interface图书馆。

关于Slurm 问题 : Array Job VS srun in a sbatch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53423544/

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