LSF Version 7.3 - Administering Platform LSF
Queue-based Fairshare
310 Administering Platform LSF
Managing pools of queues
You can configure your queues into a pool, which is a named group of queues using
the same set of hosts. A pool is entitled to a slice of the available job slots. You can
configure as many pools as you need, but each pool must use the same set of hosts.
There can be queues in the cluster that do not belong to any pool yet share some
hosts used by a pool.
How LSF allocates slots for a pool of queues
During job scheduling, LSF orders the queues within each pool based on the shares
the queues are entitled to. The number of running jobs (or job slots in use) is
maintained at the percentage level specified for the queue. When a queue has no
pending jobs, leftover slots are redistributed to other queues in the pool with jobs
pending.
The total number of slots in each pool is constant; it is equal to the number of slots
in use plus the number of free slots to the maximum job slot limit configured either
in
lsb.hosts (MXJ) or in lsb.resources for a host or host group. The
accumulation of slots in use by the queue is used in ordering the queues for
dispatch.
Job limits and host limits are enforced by the scheduler. For example, if LSF
determines that a queue is eligible to run 50 jobs, but the queue has a job limit of 40
jobs, no more than 40 jobs will run. The remaining 10 job slots are redistributed
among other queues belonging to the same pool, or make them available to other
queues that are configured to use them.
Accumulated slots
in use
As queues run the jobs allocated to them, LSF accumulates the slots each queue has
used and decays this value over time, so that each queue is not allocated more slots
than it deserves, and other queues in the pool have a chance to run their share of
jobs.
Interaction with other scheduling policies
◆ Queues participating in a queue-based fairshare pool cannot be preemptive or
preemptable.
◆ You should not configure slot reservation (SLOT_RESERVE) in queues that use
queue-based fairshare.
◆ Cross-queue user-based fairshare (FAIRSHARE_QUEUES) can undo the
dispatching decisions of queue-based fairshare. Cross-queue user-based
fairshare queues should not be part of a queue-based fairshare pool.
Examples
Three queues using two hosts each with maximum job slot limit of 6 for a total of
12 slots to be allocated:
◆ queue1 shares 50% of slots to be allocated = 2 * 6 * 0.5 = 6 slots
◆ queue2 shares 30% of slots to be allocated = 2 * 6 * 0.3 = 3.6 -> 4 slots
◆ queue3 shares 20% of slots to be allocated = 2 * 6 * 0.2 = 2.4 -> 3 slots; however,
since the total cannot be more than 12,
queue3 is actually allocated only 2 slots.