在SLURM上提交作业数组

在SLURM上提交作业数组,slurm,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

我正在尝试在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
#/usr/bin/env bash
#要在此作业的队列列表中显示的名称:
#SBATCH-jmatlab.sh
#所需CPU的数量:
#SBATCH——CPU=1
#SBATCH--mem=8gb
#作业将运行的时间:
#SBATCH--时间=167:00:00
#要使用GPU,您必须请求:
##SBATCH--gres=gpu:1
#如果需要具有特殊功能的节点,请取消注释所需的约束行:
##SBATCH--constraint=bigmem
#SBATCH——约束=cal
##SBATCH--约束=细长
#设置输出和错误文件
#SBATCH--error=job。%J.err
#SBATCH--输出=作业。%J.out
#做一个数组作业,SLURM_ARRAYID将取1到100之间的值
#SARRAY——范围=1-60
#要加载某些软件(您可以使用“模块可用性”显示列表),请执行以下操作:
模块加载matlab
从导出=400
导出到=1000
导出步骤=60
mkdir temp${SLURM_ARRAYID}
cd温度${SLURM_ARRAYID}
#要使用其参数执行的程序:
matlab<../SS.m>输出温度${SLURM\u ARRAYID}.out
睡眠10
来自文档

作业阵列中同时运行的最大任务数 可以使用“%”分隔符指定。例如“-array=0-15%4” 将限制此作业中同时运行的任务数 数组到4

因此,如果您想要提交一个包含60个作业的作业数组,但一次只运行一个作业,那么像这样更新您的提交脚本应该是非常有用的

#SBATCH --array=1-60%1

好的,这个想法是在同时提交60个作业时不要使作业调度器过载。但是,我确实希望60个作业同时运行(但不同时启动)。如果您在
srun
之前
sleep$((SLURM_ARRAYID*10))
该怎么办?糟糕,我正在考虑另一个相关问题<代码>睡眠在调用
matlab
之前。出于好奇,不同时开始工作的理由是什么?乍一看,slurm应该能够处理这个问题。“MATLAB正在选择OPENGL渲染软件。”这句话只会输出结果,其他什么都不会发生。有些作业在其他作业开始运行时显示此消息,因此我认为这是scheduler的问题,它看起来与scheduler无关。如果您
matlab-nosoftwareopengl