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
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).
At the moment only a limited list of licensed software is supported.
|Software||Server||Total Tokens Available||Share per Cluster||Slurm parameter||See also|
|Abaqus Token Calculator|
In the examples below we use
abaqus as an example.
abaqususe the Abaqus Token Calculator. Some examples:
--nodes 1 --ntasks 1 --cpus-per-task 1) you would need 5 tokens.
--nodes 1 --ntasks 1 --cpus-per-task 28) you would need 20tokens.
Submit your job passing the
--licenses option to
The syntax to use is
<software>@<server>:<count>. For the 1-core job this would look like:
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 the
module load intel abaqus lmstat -c firstname.lastname@example.org -f abaqus
Related articles appear here based on the labels you select. Click to edit the macro and add or change labels.