LSF Version 7.3 - Platform LSF Configuration Reference

A cannot preempt C, even though A has a higher priority than C, because A is not
preemptive, nor is C preemptable
Calculation of job slots in use
The number of job slots in use determines whether preemptive jobs can start. The method in
which the number of job slots in use is calculated can be configured to ensure that a preemptive
job can start. When a job is preempted, it is suspended. If the suspended job still counts towards
the total number of jobs allowed in the system, based on the limits imposed in the
lsb.resources file, suspending the job may not be enough to allow the preemptive job to
run.
The PREEMPT_FOR parameter is used to change the calculation of job slot usage, ignoring
suspended jobs in the calculation. This ensures that if a limit is met, the preempting job can
actually run.
When …
The effect on the calculation of job slots used is …
Preemption is not enabled
Job slot limits are enforced based on the number of job slots taken by both
running and suspended jobs.
Job slot limits specified at the queue level are enforced for both running and
suspended jobs.
Preemption is enabled
The total number of jobs at both the host and individual user level is not
limited by the number of suspended jobs—only running jobs are considered.
The number of running jobs never exceeds the job slot limits. If starting a
preemptive job violates a job slot limit, a lower-priority job is suspended to
run the preemptive job. If, however, a job slot limit is still violated (i.e. the
suspended job still counts in the calculation of job slots in use), the
preemptive job still cannot start.
Job slot limits specified at the queue level are always enforced for both
running and suspended jobs.
When preemptive scheduling is enabled, suspended jobs never count
against the total job slot limit for individual users.
Preemption is enabled, and
PREEMPT_FOR=GROUP_JLP
Only running jobs are counted when calculating the per-processor job slots
in use for a user group, and comparing the result with the limit specified at
the user level.
Preemption is enabled, and
PREEMPT_FOR=GROUP_MAX
Only running jobs are counted when calculating the job slots in use for this
user group, and comparing the result with the limit specified at the user level.
Preemption is enabled, and
PREEMPT_FOR=HOST_JLU
Only running jobs are counted when calculating the total job slots in use for
a user group, and comparing the result with the limit specified at the host
level. Suspended jobs do not count against the limit for individual users.
Preemption is enabled, and
PREEMPT_FOR=USER_JLP
Only running jobs are counted when calculating the per-processor job slots
in use for an individual user, and comparing the result with the limit specified
at the user level.
Feature: Preemptive scheduling
50 Platform LSF Configuration Reference