With a dedicated queue to run jobs requiring a floating software license, LSF reserves a software license before dispatching each job, and releases the license when the job finishes.
If a job submitted to the dedicated queue requiring a floating license does not actually use the license, then licenses can be under-utilized.
LSF assumes that each job indicating that it requires a license actually uses it, and subtracts the total number of jobs requesting specific licenses from the total number available.
By limiting the duration of the reservation and using the actual license usage as reported by the ELIM, underutilization is also avoided and licenses used outside of LSF can be accounted for.
In situations where an interactive job outside the control of LSF competes with batch jobs for a software license, it is possible that a batch job, having reserved the software license, may fail to start as its license is intercepted by an interactive job. To handle this situation,
If a job exits with one of the values in REQUEUE_EXIT_VALUES, LSF requeues the job.
For example, jobs submitted to the following queue use Verilog licenses:
Begin QueueQUEUE_NAME = q_verilogRES_REQ=rusage[verilog=1:duration=1]# application exits with value 99 if it fails to get licenseREQUEUE_EXIT_VALUES = 99JOB_STARTER = lic_starterEnd Queue
All jobs in the queue are started by the job starter lic_starter, which checks if the application failed to get a license and exits with an exit code of 99. This exit code causes the job to be requeued.