Platform LSF Administration Guide Version 6.2

Network Floating Licenses
Administering Platform LSF
234
Licenses used outside of LSF control
To handle the situation where application licenses are used by jobs outside of LSF, use
an ELIM to dynamically collect the actual number of licenses available instead of relying
on a statically configured value. The ELIM periodically informs LSF of the number of
available licenses, and LSF takes this into consideration when scheduling jobs.
Example
Assuming there are a number of licenses for the Verilog package that can be used by
all the hosts in the cluster, the LSF configuration files could be set up to monitor this
resource as follows:
lsf.shared
Begin Resource
RESOURCENAME TYPE INTERVAL INCREASING DESCRIPTION
verilog Numeric 60 N (Floating
licenses for Verilog)
End Resource
lsf.cluster.cluster_name
Begin ResourceMap
RESOURCENAME LOCATION
verilog ([all])
End ResourceMap
The INTERVAL in the lsf.shared file indicates how often the ELIM is expected to
update the value of the
Verilog resourcein this case every 60 seconds. Since this
resource is shared by all hosts in the cluster, the ELIM only needs to be started on the
master host. If the
Verilog licenses can only be accessed by some hosts in the cluster,
specify the LOCATION field of the
ResourceMap section as ([hostA hostB
hostC ...])
. In this case an ELIM is only started on hostA.
Submitting jobs
The users would submit jobs requiring verilog licenses as follows:
%
bsub -R "rusage[verilog=1:duration=1]" myprog
Configuring a dedicated queue for floating licenses
Whether you run all license jobs through LSF or run jobs that use licenses that are
outside of LSF control, you can configure a dedicated queue to run jobs requiring a
floating software license.
For each job in the queue, LSF reserves a software license before dispatching a job, and
releases the license when the job finishes.
Use the
bhosts -s command to display the number of licenses being reserved by the
dedicated queue.
Example
The following example defines a queue named q_verilog in lsb.queues dedicated
to jobs that require
Verilog licenses:
Begin Queue
QUEUE_NAME = q_verilog
RES_REQ=rusage[verilog=1:duration=1]
End Queue
The queue named q_verilog contains jobs that will reserve one Verilog license
when it is started.