How fair share affects job dispatch order
Within a queue, jobs are dispatched according to the queue’s scheduling policy.
- For FCFS queues, the dispatch order depends on the order of jobs in the queue (which depends on job priority and submission time, and can also be modified by the job owner).
- For fair share queues, the dispatch order depends on dynamic share priority, then order of jobs in the queue (which is not necessarily the order in which they are submitted to the queue).
A user’s priority gets higher when they use less than their fair share of the cluster’s resources. When a user has the highest priority, LSF considers one of their jobs first, even if other users are ahead of them in the queue.
If there are only one user’s jobs pending, and you do not use hierarchical fair share, then there is no resource contention between users, so the fair share policies have no effect and jobs are dispatched as usual.
Job dispatch order among queues of equivalent priority
The order of dispatch depends on the order of the queues in the queue configuration file. The first queue in the list is the first to be scheduled.
Jobs in a fair share queue are always considered as a group, so the scheduler attempts to place all jobs in the queue before beginning to schedule the next queue.
Jobs in an FCFS queue are always scheduled along with jobs from other FCFS queues of the same priority (as if all the jobs belonged to the same queue).
Example
In a cluster, queues A, B, and C are configured in that order and have equal queue priority.
Jobs with equal job priority are submitted to each queue in this order: C, B, A, B, and A.
- If all queues are FCFS queues, order of dispatch is C, B, A, B, and A (queue A is first; queues B and C are the same priority as A; all jobs are scheduled in FCFS order).
- If all queues are fair share queues, order of dispatch is AA, BB, and C (queue A is first; all jobs in the queue are scheduled; then queue B, then C).
- If A and C are fair share, and B is FCFS, order of dispatch is AA, B, B, and C (queue A jobs are scheduled according to user priority; then queue B jobs are scheduled in FCFS order; then queue C jobs are scheduled according to user priority)
- If A and C are FCFS, and B is fair share, order of dispatch is C, A, A, and BB (queue A is first; queue A and C jobs are scheduled in FCFS order, then queue B jobs are scheduled according to user priority)
- If any of these queues uses cross-queue fair share, the other queues must also use cross-queue fair share and belong to the same set, or they cannot have the same queue priority.