When using software that requires a software license and for which there are a limited number of license tokens available one wants the scheduler to be aware of that fact and only schedule a job if the required number of tokens is available.
Neglecting to declare licenses one uses can lead to failed jobs (their own or others') since SLURM might schedule jobs even if there are no license tokens available.
There are multiple license daemons that track the utilization of different software packages. These are the authoritative source of how many license tokens are available (since licensed software can also be used outside of the clusters in many cases). The tools and syntax to query these daemons are often specific to a vendor (see the example for abaqus
below).
These instructions describe the utilization of the SLURM scheduler built-in mechanism to track usage of licensed software. Although this doesn't reflect actual license availability it helps ensure one can safely submit large numbers of jobs that use licensed software.
This is currently only implemented on the Fidis cluster (and for a limited list of licenses, see below).
Please contact us if you would like us to add support on another cluster: 1234@epfl.ch
Supported software
At the moment only a limited list of licensed software is supported.
Please contact us if you would like us to prioritize adding support for any specific software: 1234@epfl.ch
Software | Server | Total Tokens Available | Share per Cluster | Slurm parameter--licenses | See also |
---|---|---|---|---|---|
abaqus | stilic3 | 400 | fidis: 20% helvetios: 0% | abaqus@stilic3 | Abaqus Token Calculator |
Step-by-step guide
In the examples below we use abaqus
as an example.
Submit a job using licenses
- Determine how many tokens your job requires. For
abaqus
use the Abaqus Token Calculator.
For a 1-core job (--nodes 1 --ntasks 1 --cpus-per-task 1
) you would need 5 tokens.
For a 28-core job (--nodes 1 --ntasks 1 --cpus-per-task 28
) you would need 20tokens. Submit your job passing the
--licenses
option tosrun
orsbatch
.
The syntax to use is<software>@<server>:<count>
. For the 1-core job this would look like:--licenses=abaqus@stilic3:5
Check available licenses
To check how many licenses can be used in the cluster, and how many are free one can use:
scontrol show licenses
The output looks like (today on the Fidis cluster):
$ scontrol show licenses LicenseName=abaqus@stilic3 Total=80 Used=0 Free=80 Remote=yes
To check how many licenses are available from the license daemon perspective one needs to use a command that is specific to each software. in the case of
abaqus
it would be (after loading theabaqus
module):lmstat -c 27005@stilic3.epfl.ch -f abaqus
Related articles