Jobs in express queue don't suspend existing job if ressources are not available


Hello -

Assuming the following:

  • one normal queue with priority 50
  • one express queue with priority 200

Say I have 3 normal jobs running, I launch a new job in the express queues, as part of the job submission I have a server_dyn_res which check if I have enough license available. If yes, the express job will suspend any normal job as expected

However, say I don’t have enough license available. My express job won’t suspend the normal job, even though suspending the normal job will free-up the license required for the express job to run.

Is there any configuration that can force express job to suspend any job independently of the ressources required? Or at least check if the express job could run before suspending other jobs?



@mmmmm Before trying to preempt a job scheduler runs a simulation where it checks whether or not preempting a job will release enough resources to run the higher priority job.

In the case you mentioned, it should work just fine as long as your server_dyn_res script reports the license count as the sum of “free licenses + licenses consumed by jobs that PBS ran” (as mentioned in your previous post by Bhroam - [Preempt queue] Jobs in queue1 should stop to let jobs in queue2 start )


Is there any easier way to configure some resources to be “releasable”? PBS should be smart enough to suspend one (low priority) job submitted with -l license=20 if it detects a high priority job with the same -l license=20 no?

If my script is returning the number of free license + the number of license currently assigned to my PBS job, it may cause some confusion at job submission


@mmmmm Unfortunately I can not come up with any other way it would work. Server dynamic resource provides resources available in the system, and Scheduler does not treat these resources in any special way. If total resources available (which includes resources assigned to running jobs) are less than requested by the job then scheduler will not even try to preempt anything.