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

SoftwareServerTotal Tokens AvailableShare per ClusterSlurm parameter
See also
abaqusstilic3400fidis: 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

  1. 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.
  2. Submit your job passing the --licenses  option to srun or sbatch .
    The syntax to use is <software>@<server>:<count>. For the 1-core job this would look like:


Check available licenses

  1. 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
        Total=80 Used=0 Free=80 Remote=yes

  2. 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 abaqus  module):

    lmstat -c 27005@stilic3.epfl.ch -f abaqus

Related articles

Related articles appear here based on the labels you select. Click to edit the macro and add or change labels.

Related issues