[英]how to write sbatch to handle multiple job in slurm
我有两个可执行文件需要运行: a.out
和b.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 以防误解。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.