我正在尝试在SLURM上提交一系列作业,但是sleep命令无法正常工作。我想每10秒发一份工作。但是,此代码等待10秒钟才能启动整个作业阵列。我该如何修改以下bash文件?
#!/usr/bin/env bash
# The name to show in queue lists for this job:
#SBATCH -J matlab.sh
# Number of desired cpus:
#SBATCH --cpus=1
#SBATCH --mem=8gb
# The time the job will be running:
#SBATCH --time=167:00:00
# To use GPUs you have to request them:
##SBATCH --gres=gpu:1
# If you need nodes with special features uncomment the desired constraint line:
##SBATCH --constraint=bigmem
#SBATCH --constraint=cal
##SBATCH --constraint=slim
# Set output and error files
#SBATCH --error=job.%J.err
#SBATCH --output=job.%J.out
# MAKE AN ARRAY JOB, SLURM_ARRAYID will take values from 1 to 100
#SARRAY --range=1-60
# To load some software (you can show the list with 'module avail'):
module load matlab
export from=400
export to=1000
export steps=60
mkdir temp_${SLURM_ARRAYID}
cd temp_${SLURM_ARRAYID}
# the program to execute with its parameters:
matlab < ../SS.m > output_temp_${SLURM_ARRAYID}.out
sleep 10
答案 0 :(得分:0)
来自文档
作业阵列中同时运行的任务的最大数量 可以使用&#34;%&#34;来指定分隔器。例如&#34; - array = 0-15%4&#34; 将限制此作业中同时运行的任务的数量 数组到4。
因此,如果您想提交一个包含60个作业的作业数组,但一次只运行一个作业,那么更新您的提交脚本就应该诀窍
#SBATCH --array=1-60%1