Knowledge Center Contents Previous Next Index |
Deadline Constraint and Exclusive Scheduling
Contents
Using Deadline Constraint Scheduling
Deadline constraints suspend or terminate running jobs at a certain time. There are two kinds of deadline constraints:
- A run window, specified at the queue level, suspends a running job
- A termination time, specified at the job level (
bsub -t
), terminates a running jobTime-based resource usage limits
- A CPU limit, specified at job or queue level, terminates a running job when it has used up a certain amount of CPU time.
- A run limit, specified at the job or queue level, terminates a running job after it has spent a certain amount of time in the RUN state.
How deadline constraint scheduling works
If deadline constraint scheduling is enabled, LSF does not place a job that will be interrupted by a deadline constraint before its run limit expires, or before its CPU limit expires, if the job has no run limit. In this case, deadline constraint scheduling could prevent a job from ever starting. If a job has neither a run limit nor a CPU limit, deadline constraint scheduling has no effect.
A job that cannot start because of a deadline constarint causes an email to be sent to the job owner.
Deadline constraint scheduling only affects the placement of jobs. Once a job starts, if it is still running at the time of the deadline, it will be suspended or terminated because of the deadline constraint or resource usage limit.
Disabling deadline constraint scheduling
Deadline constraint scheduling is enabled by default. To disable it for a queue, set IGNORE_DEADLINE=y in
lsb.queues
.Example
LSF schedules jobs in the
liberal
queue without observing the deadline constraints.Begin Queue QUEUE_NAME = liberal IGNORE_DEADLINE=y End QueueResizable jobs
LSF considers both job termination time and queue run windows as part of deadline constraints. Since the job has already started, LSF does not apply deadline constraint scheduling to job resize allocation requests.
Using Exclusive Scheduling
Exclusive scheduling gives a job exclusive use of the host that it runs on. LSF dispatches the job to a host that has no other jobs running, and does not place any more jobs on the host until the exclusive job is finished.
Compute unit exclusive scheduling gives a job exclusive use of the compute unit that it runs on.
How exclusive scheduling works
When an exclusive job (
bsub -x
) is submitted to an exclusive queue (EXCLUSIVE
= Y
or=CU
inlsb.queues
) and dispatched to a host, LSF locks the host (lockU
status) until the job finishes.LSF cannot place an exclusive job unless there is a host that has no jobs running on it.
To make sure exclusive jobs can be placed promptly, configure some hosts to run one job at a time. Otherwise, a job could wait indefinitely for a host in a busy cluster to become completely idle.
Resizable jobs
For pending allocation requests with resizable exclusive jobs, LSF does not allocate slots on a host that is occupied by the original job. For newly allocated hosts, LSF locks the LIM if LSB_DISABLE_LIMLOCK_EXCL=Y is not defined in
lsf.conf
.If an entire host is released by a job resize release request with exclusive jobs, LSF unlocks the LIM if LSB_DISABLE_LIMLOCK_EXCL=Y is not defined in
lsf.conf
.
restriction:
Jobs with compute unit resource requirements cannot be auto-resizable. Resizable jobs with compute unit resource requirements cannot increase job reseource allocations, but can release allocated resources.Configure an exclusive queue
- To configure an exclusive queue, set
EXCLUSIVE
in the queue definition (lsb.queues
) toY
.EXCLUSIVE
=CU
also configures the queue to accept exclusive jobs when no compute unit resource requirement is specified.Configure a host to run one job at a time
- To make sure exclusive jobs can be placed promptly, configure some single-processor hosts to run one job at a time. To do so, set SLOTS=1 and HOSTS=all in
lsb.resources
.Submit a exclusive job
- To submit an exclusive job, use the
-x
option ofbsub
and submit the job to an exclusive queue.Configure a compute unit exclusive queue
- To configure an exclusive queue, set EXCLUSIVE in the queue definition (
lsb.queues
) toCU
[cu_type
].If no compute unit type is specified, the default compute unit type defined in
COMPUTE_UNIT_TYPES
(lsb.params
) is used.Submit a compute unit exclusive job
- To submit an exclusive job, use the
-R
option ofbsub
and submit the job to a compute unit exclusive queue.
bsub -R "cu[excl]" my_job
Platform Computing Inc.
www.platform.com |
Knowledge Center Contents Previous Next Index |