提问人:Jason M Gray 提问时间:11/9/2023 最后编辑:Jason M Gray 更新时间:11/9/2023 访问量:38
如何为用户保留作业,以便在 slurm 中不达到总 cpu 数?
How to hold jobs for a user so that a total cpu number isn't reached in slurm?
问:
我正在提交一堆数组作业 4 组,每组 5 个,每个 8 个 cpu,所以 4x5x8=160 个 cpus。我想将运行量保持在 100>2x5x8+1x2x8 cpus 总量以下,因为我需要让其他人运行东西。我的整个研究小组允许 300 个 cpus,但我想保持在 100 以下,这样我就不会超出我的份额。如果队列中的作业在运行后将超过我的 100 个总 CPU(自施加)最大值,如何阻止它们自动运行?
我的提交脚本如下,使用不同的输入参数运行了 4 次:
#!/bin/bash
#SBATCH --time=13-00:00:00
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=8
#SBATCH --mem-per-cpu=6000MB
#SBATCH --array=1-5
echo -e "Pwmm\tPwmw\tPmwm\tPmww\n$1\t$2\t$3\t$4" > "params_$SLURM_ARRAY_JOB_ID.txt";
mkdir Games-Surfing-Pwvw_1.0-Pwvv_-1.0-Pmvm_1.0-Pmvv_-1.0-Pvwv_0.9-Pvww_-0.9-Pvmv_0.9-Pvmm_-0.9-Pwmw_$2-Pwmm_$1-Pmwm_$3-Pmww_$4-T_20000000-K_100-M_200-Zone_175;
/home/jmg367/JULIA/julia-1.8.0/bin/julia -t $SLURM_NTASKS $PWD/surf_probs_re_gill_games.jl $SLURM_NNODES $SLURM_NTASKS $SLURM_ARRAY_TASK_ID $SLURM_ARRAY_JOB_ID;
答:
1赞
damienfrancois
11/9/2023
#1
一种可能性是提交两个依赖于其他两个 () 的作业数组,以便一次只运行两个作业数组。这样一次最多可以有 2 个 5 个 8=80个CPU。--dependency=afterany:...
job_array_id1=$(sbatch submit.sh A B C D)
job_array_id2=$(sbatch submit.sh E F G H)
sbatch --depdendency=afterany:$job_array_id1 submit.sh I J K L
sbatch --depdendency=afterany:$job_array_id2 submit.sh M N O P
评论
0赞
Jason M Gray
11/9/2023
这看起来像我想做的。我想知道它是否可以进一步细化:细化到数组中的任务级别。比如:'''--dependency=afterany:$job_array_id1[1-3] submit.sh I J K L''''
0赞
Jason M Gray
11/9/2023
OOOH,所以看起来使用 aftercorr 与 afterany 相同,但在任务 id 级别。
评论