25.06.2015 Views

Administering Platform LSF - SAS

Administering Platform LSF - SAS

Administering Platform LSF - SAS

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapter 18<br />

Managing Software Licenses with <strong>LSF</strong><br />

The queue named q_verilog contains jobs that will reserve one Verilog<br />

license when it is started.<br />

If the Verilog licenses are not cluster-wide, but can only be used by some<br />

hosts in the cluster, the resource requirement string should include the<br />

defined() tag in the select section:<br />

select[defined(verilog)] rusage[verilog=1]<br />

Preventing underutilization of licenses<br />

One limitation to using a dedicated queue for licensed jobs is that if a job does<br />

not actually use the license, then the licenses will be under-utilized. This could<br />

happen if the user mistakenly specifies that their application needs a license,<br />

or submits a non-licensed job to a dedicated queue.<br />

<strong>LSF</strong> assumes that each job indicating that it requires a Verilog license will<br />

actually use it, and simply subtracts the total number of jobs requesting<br />

Verilog licenses from the total number available to decide whether an<br />

additional job can be dispatched.<br />

Use the duration keyword in the queue resource requirement specification<br />

to release the shared resource after the specified number of minutes expires.<br />

This prevents multiple jobs started in a short interval from over-using the<br />

available licenses. By limiting the duration of the reservation and using the<br />

actual license usage as reported by the ELIM, underutilization is also avoided<br />

and licenses used outside of <strong>LSF</strong> can be accounted for.<br />

When interactive jobs compete for licenses<br />

Example<br />

In situations where an interactive job outside the control of <strong>LSF</strong> competes with<br />

batch jobs for a software license, it is possible that a batch job, having reserved<br />

the software license, may fail to start as its license is intercepted by an<br />

interactive job. To handle this situation, configure job requeue by using the<br />

REQUEUE_EXIT_VALUES parameter in a queue definition in lsb.queues. If a<br />

job exits with one of the values in the REQUEUE_EXIT_VALUES, <strong>LSF</strong> will<br />

requeue the job.<br />

Jobs submitted to the following queue will use Verilog licenses:<br />

Begin Queue<br />

QUEUE_NAME = q_verilog<br />

RES_REQ=rusage[verilog=1:duration=1]<br />

# application exits with value 99 if it fails to get license<br />

REQUEUE_EXIT_VALUES = 99<br />

JOB_STARTER = lic_starter<br />

End Queue<br />

All jobs in the queue are started by the job starter lic_starter, which checks<br />

if the application failed to get a license and exits with an exit code of 99. This<br />

causes the job to be requeued and <strong>LSF</strong> will attempt to reschedule it at a later<br />

time.<br />

<strong>Administering</strong> <strong>Platform</strong> <strong>LSF</strong> 283

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

Saved successfully!

Ooh no, something went wrong!