ULHPC Job Prioritization Factors¶
The ULHPC Slurm configuration rely on the Multifactor Priority Plugin and the Fair tree algorithm to preform Fairsharing among the users1
There are several factors enabled on ULHPC supercomputers that influence job priority:
- Age: length of time a job has been waiting (PD state) in the queue
- Fairshare: difference between the portion of the computing resource that has been promised and the amount of resources that has been consumed - see Fairsharing.
- Partition: factor associated with each node partition, for instance to privilege
- QOS A factor associated with each Quality Of Service (
The job's priority at any given time will be a weighted sum of all the factors that have been enabled. Job priority can be expressed as:
Job_priority = PriorityWeightAge * age_factor + PriorityWeightFairshare * fair-share_factor+ PriorityWeightPartition * partition_factor + PriorityWeightQOS * QOS_factor + - nice_factor
All of the factors in this formula are floating point numbers that range from 0.0 to 1.0. The weights are unsigned, 32 bit integers, you can get with:
$ sprio -w # OR, from slurm.conf $ scontrol show config | grep -i PriorityWeight
sprioto view the factors that comprise a job's scheduling priority and were your (pending) jobs stands in the priority queue.
sprio Utility usage
Show current weights
sprio [-n] # OR: sp
sprio [-n] -S+Y sprio [-n] | sort -k 3 -n sprio [-n] -l | sort -k 4 -n
Getting the priority given to a job can be done either with
# /!\ ADAPT <jobid> accordingly squeue -o %Q -j <jobid>
Backfill is a mechanism by which lower priority jobs can start earlier to fill the idle slots provided they are finished before the next high priority jobs is expected to start based on resource availability.
If your job is sufficiently small, it can be backfilled and scheduled in the shadow of a larger, higher-priority job
For more details, see official Slurm documentation
All users from a higher priority account receive a higher fair share factor than all users from a lower priority account ↩