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.

How Preemptive Scheduling Works<br />

Chapter 12<br />

Preemptive Scheduling<br />

Preemptive scheduling occurs when two jobs compete for the same resource.<br />

If a high-priority job is pending, <strong>LSF</strong> can suspend a lower priority job that is<br />

running, and then start the high-priority job using the job slot that becomes<br />

available. For this to happen, the high-priority job must be pending in a<br />

preemptive queue, or the low-priority job must belong to a preemptable<br />

queue.<br />

By default, when multiple preemptable jobs exist (low-priority jobs holding the<br />

required resource), <strong>LSF</strong> preempts a job from the least-loaded host.<br />

The preempted job is resumed as soon as more resources become available; it<br />

does not necessarily have to wait for the preempting job to finish.<br />

Queues that can preempt others are more aggressive in scheduling jobs<br />

because a resource that is not available to a low-priority queue might be<br />

available (by preemption) to a high-priority queue.<br />

By default, job slot limits are enforced based on the number of job slots taken<br />

by running and suspended jobs. With preemptive scheduling, the suspended<br />

jobs don’t count against certain job slot limits. This means that when one job<br />

is suspended, another job can be started in its place.<br />

<strong>LSF</strong> makes sure that the number of running jobs never exceeds the job slot<br />

limits. When <strong>LSF</strong> tries to place a preemptive job, <strong>LSF</strong> considers each job slot<br />

limit, but for certain job slot limits, <strong>LSF</strong> only counts the job slots used by<br />

running jobs that are not preemptable. Then, if starting the preemptive job<br />

would violate job slot limits, <strong>LSF</strong> suspends one or more low-priority jobs.<br />

Job slot limits affected by preemptive scheduling<br />

When you enable preemptive scheduling, you automatically affect the<br />

following job slot limits:<br />

◆ Total job slot limit for hosts, specified at the host level (SLOTS and HOSTS<br />

in lsb.resources)<br />

◆ Total job slot limit for individual users, specified at the user level (SLOTS<br />

and USERS in lsb.resources); by default, suspended jobs still count<br />

against the limit for user groups<br />

You can configure preemptive scheduling to affect following limits:<br />

◆ Total job slot limit for user groups, specified at the user level (SLOTS and<br />

USERS in lsb.resources); if preemptive scheduling is enabled,<br />

suspended jobs never count against the limit for individual users<br />

◆ Total number of jobs for users and user groups, specified at the host level<br />

(SLOTS, PER_USER=all, and HOSTS in lsb.resources)<br />

◆ Per-processor job slot limit for individual users, specified at the user level<br />

(SLOTS_PER_PROCESSOR, USERS, and PER_HOST=all in<br />

lsb.resources)<br />

◆ Per-processor job slot limit for user groups, specified at the user level<br />

(SLOTS_PER_PROCESSOR, USERS, and PER_HOST=all in<br />

lsb.resources)<br />

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

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

Saved successfully!

Ooh no, something went wrong!