Obsolete help_starving_jobs/max_starve

Follow the PBS Pro Design Document Guidelines.

  • Link to discussion on Developer Forum: <link to your project's discussion>
  • Link to issue: <issue link if available>
  • Link to pull request: <PR link if available>

Overview

The scheduler's starving code is being deprecated.  The motivation behind this is that the starving code is a binary on/off.  You are starving or not.  One second you have low priority, and the next you have super high priority.  It is much better for jobs to slowly gain priority as they wait.  This is achieved with eligible_time and the job_sort_formula.


Interface Changes:

Obsolete: help_starving_jobs

  • The sched_config option help_starving_jobs is being obsoleted.
  • If the option is turned on, a log message will be printed to use the job_sort_formula.
  • This option will be removed from the default sched_config file
  • This option will no longer affect job's priority.

Obsolete: max_starve

  • The sched_config option max_starve is being obsoleted
  • If this option is turned on, a log message will be printed to use the job_sort_formual.
  • This option will be removed from the default sched_config file
  • This option will no longer affect job's priority

Examples of starving support with the job_sort_formula:

First off, eligible time has to be enabled:

qmgr> set server eligible_time_enable = True

The top N starving jobs would also be top jobs.  Using top job support is now separate from wait time based priority.

To enable top job support, edit sched_config:

strict_ordering: True ALL


Crafting a formula will be different for every site, but the thing to know about adding eligible_time to the formula is to correctly normalize it to the other factors.  The eligible_time factor will grow large.  If a job wait for one day, it is already 86400.

Example 1: If there is no formula already, it is simple:

qmgr> set sched job_sort_formula = eligible_time

Example 2: give shorter jobs priority over longer jobs

qmgr> set sched job_sort_formula = eligible_time / walltime

Example 3: give larger jobs priority.  The eligible_time factor won't overtake the ncpus factor for 11.5 days.  If this is too short, increase the scaling factor on ncpus.

qmgr> set sched job_sort_formula = 1000000*ncpus + eligible_time

Example 4: Recreate help_starving_jobs exactly using the job_sort_formula

qmgr> set sched job_sort_formula = 10000 if eligible_time > 86400 else 0





OSS Site Map

Project Documentation Main Page

Developer Guide Pages