如果您不是管理员,hold如果您不希望所有工作同时启动,您可以完成一些工作scontrol hold <JOBID>,并且您可以延迟提交某些工作sbatch --begin=YYYY-MM-DD.此外,如果它是一个作业数组,您可以限制同时运行的阵列中的作业数,例如--array=1:100%25在阵列中有100个作业,但只有25个作业在运行.
根据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秒。
感谢意见和建议。
根据SLURM资源限制文档,您可以使用参数限制可以为关联/环境运行的作业总数MaxJobs。提醒一下,关联是群集,帐户,用户名和(可选)分区名的组合。
您应该能够执行以下操作:
sacctmgr modify user <userid> account=<account_name> set MaxJobs=10
Run Code Online (Sandbox Code Playgroud)
我发现如果您有更多问题,此演示文稿将非常有帮助。
| 归档时间: |
|
| 查看次数: |
4101 次 |
| 最近记录: |