Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
  • Interface 1: equiv_class_enable scheduler attribute

    • Visibility: Private
    • Change Control: Unstable
    • Permissions: Write: Manager Read: Everyone
    • Details: Using this attribute admin can enable the equivalence class capability in the scheduler
      • Usage: boolean
    • Default: Unset/Enabled
      Log/Error messages:

  • Interface 2: equiv_class_exclude scheduler attribute

    • Visibility: Public
    • Change Control: Stable
    • Permissions: Write: Manager Read: Everyone
    • Details: Using this attribute admin can exclude certain resources from being considered when building the equivalence classes.  These resources are excluded from both the Resource_list and select resources.
      • Usage: comma separated list of resources
      • Example: equiv_class_exclude: walltime, software
    • Default: Unset
    • Log/Error messages:

Equivalence classes are a way to group identical jobs together.  Once one job in a class can not run, the scheduler knows the rest of the jobs in that class can not run.  

...

  1. The scheduler sorts jobs into priority order.  This may include sorting algorithms such as the job_sort_formula or fairshare. 
  2. The scheduler starts considering jobs in sorted order
  3. If calendaring is enabled, the scheduler will look at the first N (backfill_depth=N) jobs in sorted order and add them that can not run will be added to the calendar.
  4. Once calendaring is finished, the scheduler will start considering the rest of the jobs in sorted order.  Once one job in an equivalence class After calendering has finished, equivalence classes come into play.  Any time a job can not run, the rest of the jobs in its class is are not considered during the cycle.

...

Once equivalence classes are enabled, the scheduler will create a set of jobs that are equivalentidentical.  An equivalence class is made up of jobs that have the same euser, egroup, project, select, place, and Resource_List resources.  Any undesired resources can be excluded by listing them in the 'equiv_class_exclude' sched attribute.  Any resource listed is excluded from both the Resource_List resources and the select resources.

...

No Format
...;Job Id;Considering job to run
...;Job Id;<Reason job can not run>
...;Job Id;Considering job to run
...

i.e. each job gets its own "Considering job to run line"

...

No Format
...;Job Id;Considering job to run
...;Job Id;<Reason job can not run>
<same line for rest of equivalence classclass>


Example:

No Format
04/15/2015 16:01:18;1234.mars;Considering job to run
04/15/2015 16:01:18;1234.mars;Insufficient amount of resource: ncpus
04/15/2015 16:01:18;1235.mars;Insufficient amount of resource: ncpus
04/15/2015 16:01:18;1236.mars;Insufficient amount of resource: ncpus
04/15/2015 16:01:18;1237.mars;Insufficient amount of resource: ncpus

...