我要在计算机节点上同时运行几个独立的作业。
我只想使用所请求节点的一个核心来运行每个作业。如何编写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个独立作业?
答案 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在数组中。