Implement Strict Ordering

Use strict ordering to tell PBS that it must not skip a job when choosing which job to run based on execution priority.

Strict Ordering

Overview of strict ordering.

When strict ordering is used, the scheduler runs jobs in exactly the order of their priority. Strict ordering does not affect how job priority is calculated, but it does change which execution priority classes a scheduler uses.

To configure strict ordering, enable the Strict Ordering parameter. It is a primetime option, meaning that you can configure it separately for primetime and non-primetime, or you can specify it for all of the time.

Combining Strict Ordering and Backfilling

Strict ordering alone may cause some resources to stand idle while the top job waits for resources to become available. If you want to prevent this, you can use backfilling with strict ordering. Using backfilling, if the top job cannot run, filler jobs can be squeezed in around the job that cannot run.

Strict Ordering Caveats

It is inadvisable to use strict ordering and backfilling with Fairshare. The results may be non-intuitive. Fairshare will cause relative job priorities to change with each scheduling cycle. It is possible that a job from the same entity or group as the desired large job will be chosen as the filler job. The usage from these filler jobs will lower the priority of the top job.

For example, if a user has a large job that is the top job, and that job cannot run, smaller jobs owned by that user will chew up the user's usage, and prevent the large job from being likely to ever run. Also, if the small jobs are owned by a user in one area of the Fairshare tree, no large jobs owned by anyone else in that section of the Fairshare tree are likely to be able to run.

Using dynamic resources with strict ordering and backfilling may result in unpredictable scheduling. For more information see Backfilling Recommendations and Caveats in the PBS ProfessionalAdministrator's Guide.

Using preemption with strict ordering and backfilling may change which job is the top job.

With both round robin and strict ordering, a job continually rejected by a runjob hook may prevent other jobs from being run. A well-written hook would put the job on hold or requeue the job at some later time to allow other jobs in the same queue to be run.

Use Strict Ordering

Specify that jobs must be run in the order determined by whatever sorting parameters are being used. This means that a job cannot be skipped due to resources required not being available.

Important: The Strict Ordering parameter can only be updated if the cluster was added by a user with passwordless sudo permissions and therefore may not appear as a Scheduling parameter.
  1. Click the Configure tab.
  2. Choose the HPC to configure.

    Choose an HPC
    Figure 1. Choose an HPC
  3. Click Scheduling from the PBS Professional menu located on the left-hand side of the web page.
  4. Scroll down to the second list of Scheduling parameters.
  5. Click located to the right of Strict Ordering.
  6. Choose one of the following options to enable or disable strict ordering:
    • To enable strict ordering for both prime and non-prime time, enable Strict Ordering and enable both Prime and Non-Prime.
    • To enable strict ordering for only prime time, enable Strict Ordering and enable Prime and disable Non-Prime.
    • To enable strict ordering for only non-prime time, enable Strict Ordering and enable Non-Prime and disable Prime.
    • To disable strict ordering disable Strict Ordering.
  7. Click to save the changes.