在SLURM上提交一系列作业

时间:2017-12-22 22:49:21

标签: slurm

我正在尝试在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

1 个答案:

答案 0 :(得分:0)

来自文档

  

作业阵列中同时运行的任务的最大数量   可以使用&#34;%&#34;来指定分隔器。例如&#34; - array = 0-15%4&#34;   将限制此作业中同时运行的任务的数量   数组到4。

因此,如果您想提交一个包含60个作业的作业数组,但一次只运行一个作业,那么更新您的提交脚本就应该诀窍

#SBATCH --array=1-60%1