如何使用一个bash脚本运行几个独立的作业?

时间:2018-11-01 10:40:06

标签: bash slurm

我要在计算机节点上同时运行几个独立的作业。

我只想使用所请求节点的一个核心来运行每个作业。如何编写bash脚本来执行此操作?

这是我编写的bash脚本,但是没有用

#!/bin/bash
#SBATCH --job-name=20
#SBATCH --partition=the_partition
#SBATCH --nodes=1
#SBATCH --ntasks=20
for n in {1..20};
do
cd "dictionary$n"
./ the job
done 

如何修改脚本以同时运行20个独立作业?

1 个答案:

答案 0 :(得分:0)

最简单的解决方案是使用作业数组:

#!/bin/bash
#SBATCH --job-name=20
#SBATCH --partition=the_partition
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --array=1-20
cd "dictionary$SLURM_ARRAY_TASK_ID"
./ the job

上面的脚本将创建一个包含20个作业的作业数组,每个作业将基于cd变量$SLURM_ARRAY_TASK_ID到目录,每个作业的取值范围为1到20在数组中。