25.06.2015 Views

Administering Platform LSF - SAS

Administering Platform LSF - SAS

Administering Platform LSF - SAS

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Queue-based Fairshare<br />

Queue-based Fairshare<br />

Managing pools of queues<br />

When a priority is set in a queue configuration, a high priority queue tries to<br />

dispatch as many jobs as it can before allowing lower priority queues to<br />

dispatch any job. Lower priority queues are blocked until the higher priority<br />

queue cannot dispatch any more jobs. However, it may be desirable to give<br />

some preference to lower priority queues and regulate the flow of jobs from<br />

the queue.<br />

Queue-based fairshare allows flexible slot allocation per queue as an<br />

alternative to absolute queue priorities by enforcing a soft job slot limit on a<br />

queue. This allows you to organize the priorities of your work and tune the<br />

number of jobs dispatched from a queue so that no single queue monopolizes<br />

cluster resources, leaving other queues waiting to dispatch jobs.<br />

You can balance the distribution of job slots among queues by configuring a<br />

ratio of jobs waiting to be dispatched from each queue. <strong>LSF</strong> then attempts to<br />

dispatch a certain percentage of jobs from each queue, and does not attempt<br />

to drain the highest priority queue entirely first.<br />

When queues compete, the allocated slots per queue is kept within the limits<br />

of the configured share. If only one queue in the pool has jobs, that queue can<br />

use all the available resources and can span its usage across all hosts it could<br />

potentially run jobs on.<br />

You can configure your queues into a pool, which is a named group of queues<br />

using the same set of hosts. A pool is entitled to a slice of the available job<br />

slots. You can configure as many pools as you need, but each pool must use<br />

the same set of hosts. There can be queues in the cluster that do not belong to<br />

any pool yet share some hosts used by a pool.<br />

How <strong>LSF</strong> allocates slots for a pool of queues<br />

During job scheduling, <strong>LSF</strong> orders the queues within each pool based on the<br />

shares the queues are entitled to. The number of running jobs (or job slots in<br />

use) is maintained at the percentage level specified for the queue. When a<br />

queue has no pending jobs, leftover slots are redistributed to other queues in<br />

the pool with jobs pending.<br />

The total number of slots in each pool is constant; it is equal to the number of<br />

slots in use plus the number of free slots to the maximum job slot limit<br />

configured either in lsb.hosts (MXJ) or in lsb.resources. The<br />

accumulation of slots in use by the queue is used in ordering the queues for<br />

dispatch.<br />

Job limits and host limits are enforced by the scheduler. For example, if <strong>LSF</strong><br />

determines that a queue is eligible to run 50 jobs, but the queue has a job limit<br />

of 40 jobs, no more than 40 jobs will run. The remaining 10 job slots are<br />

redistributed among other queues belonging to the same pool, or make them<br />

available to other queues that are configured to use them.<br />

218<br />

<strong>Administering</strong> <strong>Platform</strong> <strong>LSF</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!