作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Slurm上以下两种并行化方案有什么区别?
方案一
运行 sbatch script.sh
#!/bin/bash
#SBATCH --ntasks=8
## more options
srun echo hello
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/
我是一名优秀的程序员,十分优秀!