限制SLURM中正在运行的作业数

use*_*257 7 slurm

我在SLURM排队多个工作.我可以限制slurm中并行运行的作业数量吗?

提前致谢!

dam*_*ois 9

如果您不是管理员,hold如果您不希望所有工作同时启动,您可以完成一些工作scontrol hold <JOBID>,并且您可以延迟提交某些工作sbatch --begin=YYYY-MM-DD.此外,如果它是一个作业数组,您可以限制同时运行的阵列中的作业数,例如--array=1:100%25在阵列中有100个作业,但只有25个作业在运行.


aer*_*man 6

根据SLURM 文档--array=0-15%4( -符号而不是: ) 会将该作业数组中同时运行的任务数量限制为 4 个。

我写了test.sbatch

#!/bin/bash
# test.sbatch
#
#SBATCH -J a
#SBATCH -p campus
#SBATCH -c 1
#SBATCH -o %A_%a.output

mkdir test${SLURM_ARRAY_TASK_ID}

# sleep for up to 10 minutes to see them running in squeue and 
# different times to check that the number of parallel jobs remain constant
RANGE=600; number=$RANDOM; let "number %= $RANGE"; echo "$number"

sleep $number
Run Code Online (Sandbox Code Playgroud)

并运行它sbatch --array=1-15%4 test.sbatch

作业按预期运行(始终并行 4 个),仅创建目录并保持运行$number秒。

感谢意见和建议。


And*_*esM 5

根据SLURM资源限制文档,您可以使用参数限制可以为关联/环境运行的作业总数MaxJobs。提醒一下,关联是群集,帐户,用户名和(可选)分区名的组合。

您应该能够执行以下操作:

sacctmgr modify user <userid> account=<account_name> set MaxJobs=10
Run Code Online (Sandbox Code Playgroud)

我发现如果您有更多问题,此演示文稿将非常有帮助。