Skip to content

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

Priority Factors

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 interactive over batch partitions
  • QOS A factor associated with each Quality Of Service (low \longrightarrow urgent)

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
You can use the sprio to 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 -w
List pending jobs, sorted by jobid
sprio [-n]     # OR: sp
List pending jobs, sorted by priority
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 squeue:

# /!\ ADAPT <jobid> accordingly
squeue -o %Q -j <jobid>

Backfill Scheduling

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

  1. All users from a higher priority account receive a higher fair share factor than all users from a lower priority account 

Last update: May 27, 2024