Knowledge Center         Contents    Previous  Next    Index  
Platform Computing Corp.

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:

Time-based resource usage limits

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 Queue 

Resizable 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 in lsb.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

  1. To configure an exclusive queue, set EXCLUSIVE in the queue definition (lsb.queues) to Y.
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

  1. 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

  1. To submit an exclusive job, use the -x option of bsub and submit the job to an exclusive queue.

Configure a compute unit exclusive queue

  1. To configure an exclusive queue, set EXCLUSIVE in the queue definition (lsb.queues) to CU[cu_type].
  2. 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

  1. To submit an exclusive job, use the -R option of bsub and submit the job to a compute unit exclusive queue.
  2. bsub -R "cu[excl]" my_job


Platform Computing Inc.
www.platform.com
Knowledge Center         Contents    Previous  Next    Index