Skip to content

Certain commercial software packages have a finite number of seats available for use. For instance, Drexel has 200 seats for Matlab. Since Proteus has >2000 processor cores available, it is very easy for Proteus users to consume all available licenses and prevent anyone else on campus from using Matlab. In addition, if licenses for specific Matlab toolboxes have been exhausted, any job submitted which use these licenses would fail.

Mechanism

In order to ensure both that Picotte users do not exhaust licenses, and that Picotte jobs do not fail without warning due to lack of licenses, Slurm local licenses have been defined to restrict the number of simultaneous running instances of certain software.

Generally, use the -L/--licenses option to sbatch, e.g.

#SBATCH --licenses=fluent:1

Please see the individual wiki page for the software you would like to use for details on licenses:

Viewing Available Licenses

Slurm can show license status with the scontrol command:

[juser@picotte001 ~]$ scontrol show lic
LicenseName=fluent
    Total=25 Used=0 Free=25 Reserved=0 Remote=no
LicenseName=stata48
    Total=10 Used=0 Free=10 Reserved=0 Remote=no

PROTEUS HAS BEEN DECOMMISSIONED

Mechanism

In order to ensure both that Proteus users do not exhaust licenses, and that Proteus jobs do not fail without warning due to lack of licenses, Grid Engine license resources ("complexes" in GE jargon) have been defined. A system service keeps track of the available licenses from the central license server, and imposes some limits on the total number which may be used by Proteus at any one time.

Examples

To run a Matlab job which uses the Parallel Computing Toolbox (a.k.a. Distributed Computing Toolbox), your job script should request one Matlab seat and one Parallel Computing Toolbox seat:

#$ -l matlab=1
#$ -l distrib_computing_toolbox=1

If there are no available licenses, the job will sit in the pending list until licenses become available.

To run a parallel Abaqus job, you need to compute the number of license tokens needed by the job. This number is a (nonlinear) function of the number of slots requested. For instance:

#$ -pe fixed16 32
#$ -l vendor=intel
#$ -l abaqus=21

Please see the Abaqus#Licenses article for details on how to compute the number of license tokens needed.

Monitoring

To view the number of available seats of particular products, you can use qstat.

[juser@proteusi01 ~]$ qstat -F matlab,distrib_computing_toolbox
queuename                      qtype resv/used/tot. np_load  arch          states
---------------------------------------------------------------------------------
all.q@ac01n01.cm.cluster       BIPC  0/64/64        0.39     lx-amd64
    gc:distrib_computing_toolbox=4
    gc:matlab=47
---------------------------------------------------------------------------------
all.q@ac01n02.cm.cluster       BIPC  0/0/64         -NA-     lx-amd64      adu
    gc:distrib_computing_toolbox=4
    gc:matlab=47
---------------------------------------------------------------------------------
all.q@ac02n01.cm.cluster       BIPC  0/64/64        0.41     lx-amd64
    gc:distrib_computing_toolbox=4
    gc:matlab=47
...

A list of all licenses and usage can be seen online: https://proteusmaster.urcf.drexel.edu/lmstat.html

The same info can be seen using the following command:

[juser@proteusi01 ~]$ lmutil lmstat -a
lmutil - Copyright (c) 1989-2014 Flexera Software LLC. All Rights Reserved.
Flexible License Manager status on Thu 4/21/2016 13:50

License server status: .@oystercatcher,.@goose,.@killdeer

oystercatcher: license server UP v11.11
goose: license server UP (MASTER) v11.11
killdeer: license server UP v11.11

Vendor daemon status (on goose):

       MLM: UP v11.11
Feature usage info:

Users of MATLAB:  (Total of 200 licenses issued;  Total of 153 licenses in use)

  "MATLAB" v35, vendor: MLM, expiry: 01-jan-0000
  floating license

...