繁体   English   中英

如何编写 sbatch 来处理 slurm 中的多个作业

[英]how to write sbatch to handle multiple job in slurm

我有两个可执行文件需要运行: a.outb.out

(1)我想在两个节点上运行a.out ,每个节点有一个a.out进程。

(2)我想在两个节点上运行b.out ,节点在(1)中是一样的,但是每个节点有两个b.out进程。

我的天真代码如下所示

#!/bin/bash
#SBATCH --nodes 2
#SBATCH --ntasks-per-node 2

srun a.out
srun b.out

但它不能处理上述需求。 我如何编写 sbatch 来实现这一目标?

如果这是一个愚蠢的问题,我深表歉意。 谢谢你的时间。

假设我们有 3 个节点并且想要运行第一个作业 A 和作业 B。作业 A 应该在每个节点上运行 1 个进程。 作业 B 应该在每个节点上运行 5 个进程。

因此 sbatch 文件sbatch_input.sh可以写成:

#!/bin/bash
#SBATCH --nodes 3
#SBATCH --ntasks-per-node 5
#SBATCH -p cnall

# job A
srun --nodes 3 --ntasks=3 hostname
echo "-------------------------------"
# job B
srun --nodes 3 --ntasks-per-node=5 hostname

使用 sbatch 运行脚本

sbatch ./sbatch_input.sh

结果表明

c05b01n06
c05b01n08
c05b01n07
-------------------------------
c05b01n06
c05b01n08
c05b01n07
c05b01n06
c05b01n06
c05b01n06
c05b01n06
c05b01n08
c05b01n08
c05b01n08
c05b01n08
c05b01n07
c05b01n07
c05b01n07
c05b01n07

这里不使用数字 2 以防误解。

  • 参考

https://slurm.schedmd.com/srun.html

术语“工作”、“任务”和“步骤”如何相互关联?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM