Job Scheduling


How A Job Is Selected For A Slave

By default, a job is selected for a slave based on the following properties in this order:

  1. Pool the job is submitted to (more info) and whether or not it is Pool Exclusive
    • Slaves can be assigned to pools (based on priority) or excluded from pools.
    • A job that has been marked as pool exclusive will only be selected by slaves that have been assigned that pool.
    • A job that is not pool exclusive can still be rendered by slaves that have not been assigned that pool, they just have the lowest priority with regards to the Pool property.
    • Everything else being equal, a job submitted to a pool with the highest priority will be chosen first when a slave is selecting its next task.
  2. Priority of the job
    • A jobs priority can range from 0 to 100, where 0 is the lowest priority and 100 is the highest priority.
    • Everything else being equal, a job with the highest priority will always be chosen first when a slave is selecting its next task.
  3. Date and Time the job is submitted
    • This is set automatically and is the timestamp of when the job was submitted to Deadline.
    • Everything else being equal, an older job will take priority over a newer job when a slave is selecting its next task.
  4. Limit Groups required by the job (more info) and Machine Limits placed on a job
    • Limit Groups are used to limit the number of machines that render with a network licensed product at one time, where the limit is set to the number of network licenses you have for that product.
    • If a job has the highest priority, but requires a Limit Group that is maxed out, a slave will try to select a job with the next highest priority.
    • Machine Limits essentially work the same as Limit Groups, except that the limit restricts the number of machines that can render that particular job at a time.
    • If a job has the highest priority, but the maximum number of machines is currently rendering the job, a slave will try to select a job with the next highest priority.

Changing The Scheduling Order

It is possible to change the order in which jobs are scheduled from the Deadline Monitor. In Super User mode, select Tools -> Configure Repository Options. More repository options are described here.

The following options are available:

  • Date_Pool_Priority: This represents a First In First Out (FIFO) scheduling system. Since it is rare for two jobs to be submitted at exactly the same time, the job's pool and priority will likely never affect how the job is scheduled.
  • Date_Priority_Pool: Because it is rare for two jobs to be submitted at exactly the same time, this will work the same as Date_Pool_Priority, and is simply included for completeness.
  • Pool_Priority_Date: This is the default scheduling order that is used.
  • Pool_Date_Priority: Since it is rare for two jobs to be submitted at exactly the same time, only the job's pool and submission date/time will affect how the job is scheduled.
  • Priority_Date_Pool: Since it is rare for two jobs to be submitted at exactly the same time, only the job's priority and submission date/time will affect how the job is scheduled.
  • Priority_Pool_Date: Similar to the default scheduling order, except that the job's priority takes precedence over its pool.