Author Topic: Changing job priority... does it hold running jobs with less important priority?  (Read 4138 times)

lajoied

  • QA Manager Animation, Autodesk
  • Jr. Member
  • **
  • Posts: 2
Hi!
I am looking at Qube! and it is unclear to me

Q1: What happens if a job gets its priority changed to become the most important job, what would happen with other running jobs with less important ranking?
Q2: Does less important running jobs get paused right away?
Q3: is there a way to determine how priority change can handled on a per job basis?

For example, I think in Rush, you have a way to say: ignore and complete job, kill job and switch to other job, pause the running job, start new job, then resume old job. (something along those lines)

Tx
Dave.

anthony

  • Senior Software Engineer
  • Hero Member
  • *****
  • Posts: 183
Hey Dave,

     In qube! this is known as preemption.  Jobs of higher priority replace those of lower priority when one of the following events occur:
 
          A new job of higher priority enters the queue
          An existing job is modified to be higher priority

     By default, preemption is setup to be "passive" which means to replace jobs at the most convenient point.  This saves lower priority from having to redo their work.  So a low priority job will finish the frame it is currently on, and will then exit gracefully. 

     qube! can also be setup to do a more "aggressive" preemption, where a job to be replaced is immediately killed and requeueed.  While this is more destructive, it is easier for most users to comprehend so some studios prefer to work this way.

     In terms of fine grain control, this can be handled in virtually any way using a customized policy.   The supervisor allows you to create a simple policy script file, which defines how you would like to handle a preemption.  In this file, the supervisor will pass your routines the candidate job to replace and to be replaced.  Your policy can then choose to either skip the preemption all together, or to return a passive or aggressive decision.  This allows you to create a large range of actions perfectly tuned to the way your studio does things.  Examples of this are:

      I would like my job to preempt another job only if it's priority is 100 or greater.
      If a job has been running for longer than 3 hours, I would like preemption to skip it, even if the modified or new job is higher priority.
      Jobs owned by "user name" are not allowed to preempt other jobs.
      If the job is 10 or greater, it is allowed to aggressively preempt other jobs.
     
      If you need any examples on how to create a customized policy, we'll be happy to provide some for you.

Thanks,
     Anthony


jburk

  • Administrator
  • *****
  • Posts: 493