查看用户请求的 slurm 作业优先级

问题描述 投票:0回答:1

我在 slurm 中提交了以下作业

testuser1@dev-0:~$ sbatch --priority=10 --cpus-per-task=10 --wrap="/bin/sleep 300"
Submitted batch job 18

当我在上面的作业上显示作业时,我在 scontrol show job 中没有看到上面提交的优先级值。

testuser1@dev-0:~$ scontrol show job 18
JobId=18 JobName=wrap
UserId=testuser1(1000) GroupId=tstgrp00(1000) MCS_label=N/A
Priority=4294901751 Nice=0 Account=(null) QOS=(null)
JobState=RUNNING Reason=None Dependency=(null)
Requeue=1 Restarts=0 BatchFlag=1 Reboot=0 ExitCode=0:0
RunTime=00:00:15 TimeLimit=365-00:00:00 TimeMin=N/A
SubmitTime=2023-10-03T09:59:44 EligibleTime=2023-10-03T09:59:44
AccrueTime=2023-10-03T09:59:44
StartTime=2023-10-03T09:59:44 EndTime=2024-10-02T09:59:44 Deadline=N/A
SuspendTime=None SecsPreSuspend=0 LastSchedEval=2023-10-03T09:59:44 Scheduler=Backfill
Partition=debug AllocNode:Sid=dev-0:116
ReqNodeList=(null) ExcNodeList=(null)
NodeList=dev-0
BatchHost=dev-0
NumNodes=1 NumCPUs=10 NumTasks=1 CPUs/Task=10 ReqB:S:C:T=0:0:*:*
ReqTRES=cpu=10,mem=10M,node=1,billing=10
AllocTRES=cpu=10,mem=10M,node=1,billing=10
Socks/Node=* NtasksPerN:B:S:C=0:0:*:* CoreSpec=*
MinCPUsNode=10 MinMemoryCPU=1M MinTmpDiskNode=0
Features=(null) DelayBoot=00:00:00
OverSubscribe=OK Contiguous=0 Licenses=(null) Network=(null)
Command=(null)
WorkDir=/home/testuser1
StdErr=/home/testuser1/slurm-18.out
StdIn=/dev/null
StdOut=/home/testuser1/slurm-18.out
Power=

我的 slurm.conf 中的调度程序类型是 sched/backfill。尽管作业是根据用户请求的优先级进行安排的,但我在

scontrol show job
中没有看到用户请求的确切值。即使使用 sacct 我也能看到这个值。有没有办法在scontrol中查看原始值?

slurm
1个回答
0
投票

如果您打印的优先级值是

X
,

那么实际优先级可以计算为

UINT_MAX - UINT16_MAX + 1 - X

所以,就你而言,将会是,

UINT_MAX - UINT16_MAX + 1 - 4294901751 
将给出
10

Slurm 设置无符号整数的优先级,并且在显示结果时,(以下是我的假设 - 我没有检查整个代码:))翻译(错误的格式说明符)混乱(无符号 int 和无符号短整型)和优先级计算在输出中显示为大值(或者可能他们打算以这种方式进行)。因此,进行上述逆向工程场景可以获得输出。

这是我的假设!

© www.soinside.com 2019 - 2024. All rights reserved.