[Q] Scheduling algorithm

Hello, members.

I would like to know PBS Professional (18.1) scheduling algorithm
IIUC, A basic algorithm is following. Is this correct?

  • Basic scheduling is First in First out.
  • If a job(Job A) can’t assign a resource, it waits until resource available.
    (If this job request 12 chunks, And It not available)
  • If resource available for another job(Job B which is submitted after Job A)(ex. request 2 chunks), PBS process jobs B before A.

Best regards.

Hi, @hiroyuki-sato,

I think that it is maybe correct.
Suppose that, there are 2 people X and Y, and
X submit job(s) type Job A, and Y submit many many jobs type JobB.
Perhaps, X’s job(s) will be waiting untill all of Y’s jobs fiinish.
So, in my compnay, user X were very angly :rage:!
Hence, I changed configurations strict_ordering and backfill.


+1 Takahiro

@hiroyuki-sato : Please refer this section of the PBS Pro administrator guide
4.3 Scheduling Policy Basics

Please check these settings and their information in the above manual:
source /etc/pbs.conf;cat $PBS_HOME/sched_priv/sched_config | grep -v "#" | grep ^[a-zA-Z]


  • check job_sort_formula

Hello, @Takahiro and @adarsh

Thank you for replying. I’ll take a look that document.
The current setting is the following.

  • no job_sort_formula settings
  • strict_ordering: FALSE

Best regards.

The default behavior out of the box is what you described. We do so much more.

If you don’t like FIFO, then use the job_sort_formula, job_sort_key, or fairshare.

If you dislike how the scheduler moves on and runs Job B instead of waiting for Job A, look at strict_ordering. This will enforce the order (sorted or FIFO). If walltimes are provided and backfill_depth is not equal to 0, then the scheduler will backfill around the higher priority jobs. By default backfill_depth is 1, so maybe increase that to 10 or 50. Keep in mind that a higher backfill_depth will slow down the scheduler.

You can also use preemption to get your higher priority jobs running faster if you don’t mind delaying lower priority currently running jobs.

These are just a small number of options our scheduler provides to help craft your scheduling policy. If you want to see them all, read through the scheduling chapter in the big book as @adarsh suggested.