Commit b0f0bb67 authored by Roman Sliva's avatar Roman Sliva

Update license aware scheduling

parent 32a6c815
......@@ -52,56 +52,32 @@ $ cat /apps/user/licenses/matlab_features_state.txt
Statistics_Toolbox 1 0 1
```
## License Tracking in PBS Pro Scheduler and Users Usage
## License Aware Job Scheduling
Anselm cluster and Salomon cluster provide license aware job scheduling.
Each feature of each license is accounted and checked by the scheduler of PBS Pro. If you ask for certain licenses, the scheduler won't start the job until the asked licenses are free (available). This prevents to crash batch jobs, just because of unavailability of the needed licenses.
Selected licenses are accounted and checked by the scheduler of PBS Pro. If you ask for certain licenses, the scheduler won't start the job until the asked licenses are free (available). This prevents to crash batch jobs, just because of unavailability of the needed licenses.
The general format of the name is `feature__APP__FEATURE`.
The general format of the name is `license__APP__FEATURE`.
Names of applications (APP):
```bash
ansys
comsol
comsol-edu
matlab
matlab-edu
```
To get the FEATUREs of a license take a look into the corresponding state file ([see above][1]), or use:
### Application and List of Provided Features
* **ansys** $ grep -v "#" /apps/user/licenses/ansys_features_state.txt | cut -f1 -d' '
* **comsol** $ grep -v "#" /apps/user/licenses/comsol_features_state.txt | cut -f1 -d' '
* **comsol-ed** $ grep -v "#" /apps/user/licenses/comsol-edu_features_state.txt | cut -f1 -d' '
* **matlab** $ grep -v "#" /apps/user/licenses/matlab_features_state.txt | cut -f1 -d' '
* **matlab-edu** $ grep -v "#" /apps/user/licenses/matlab-edu_features_state.txt | cut -f1 -d' '
Example of PBS Pro resource name, based on APP and FEATURE name:
Supported application license features:
| Application | Feature | PBS Pro resource name |
| ----------- | -------------------------- | ----------------------------------------------- |
| ansys | acfd | feature_ansys_acfd |
| ansys | aa_r | feature_ansys_aa_r |
| comsol | COMSOL | feature_comsol_COMSOL |
| comsol | HEATTRANSFER | feature_comsol_HEATTRANSFER |
| comsol-edu | COMSOLBATCH | feature_comsol-edu_COMSOLBATCH |
| comsol-edu | STRUCTURALMECHANICS | feature_comsol-edu_STRUCTURALMECHANICS |
| matlab | MATLAB | feature_matlab_MATLAB |
| matlab | Image_Toolbox | feature_matlab_Image_Toolbox |
| matlab-edu | MATLAB_Distrib_Comp_Engine | feature_matlab-edu_MATLAB_Distrib_Comp_Engine |
| matlab-edu | Image_Acquisition_Toolbox | feature_matlab-edu_Image_Acquisition_Toolbox\\ |
| ansys | aa_r_hpc | license__ansys__aa_r_hpc |
| matlab-edu | MATLAB | license__matlab-edu__MATLAB |
| matlab-com | MATLAB | license__matlab-com__MATLAB |
Do not hesitate to ask IT4I support for support of additional license features you want to use in your jobs.
!!! warnig
Resource names in PBS Pro are case sensitive.
### Example of qsub Statement
Run an interactive PBS job with 1 Matlab EDU license, 1 Distributed Computing Toolbox and 32 Distributed Computing Engines (running on 32 cores):
Run an interactive PBS job with 1 Matlab EDU license:
```console
$ qsub -I -q qprod -A PROJECT_ID -l select=2:ncpus=16 -l feature__matlab-edu__MATLAB=1 -l feature__matlab-edu__Distrib_Computing_Toolbox=1 -l feature__matlab-edu__MATLAB_Distrib_Comp_Engine=32
$ qsub -I -q qprod -A PROJECT_ID -l select=2 -l license__matlab-edu__MATLAB=1
```
The license is used and accounted only with the real usage of the product. So in this example, the general Matlab is used after Matlab is run by the user and not at the time, when the shell of the interactive job is started. Also the Distributed Computing licenses are used at the time, when the user uses the distributed parallel computation in Matlab (e. g. issues pmode start, matlabpool, etc.).
......
......@@ -72,7 +72,7 @@ Following example shows how to start interactive session with support for Matlab
```console
$ xhost +
$ qsub -I -v DISPLAY=$(uname -n):$(echo $DISPLAY | cut -d ':' -f 2) -A NONE-0-0 -q qexp -l select=1 -l walltime=00:30:00 -l feature__matlab__MATLAB=1
$ qsub -I -v DISPLAY=$(uname -n):$(echo $DISPLAY | cut -d ':' -f 2) -A NONE-0-0 -q qexp -l select=1 -l walltime=00:30:00 -l license__matlab-edu__MATLAB=1
```
This qsub command example shows how to run Matlab on a single node.
......@@ -249,9 +249,7 @@ delete(pool)
### Non-Interactive Session and Licenses
If you want to run batch jobs with Matlab, be sure to request appropriate license features with the PBS Pro scheduler, at least the `-l __feature__matlab__MATLAB=1` for EDU variant of Matlab. More information about how to check the license features states and how to request them with PBS Pro, [look here][3].
The licensing feature of PBS is currently disabled.
If you want to run batch jobs with Matlab, be sure to request appropriate license features with the PBS Pro scheduler, at least the `-l license__matlab-edu__MATLAB=1` for EDU variant of Matlab. More information about how to check the license features states and how to request them with PBS Pro, [look here][3].
In case of non-interactive session read the [following information][3] on how to modify the qsub command to test for available licenses prior getting the resource allocation.
......
......@@ -78,7 +78,7 @@ Once this file is in place, user can request resources from PBS. Following examp
```console
$ xhost +
$ qsub -I -v DISPLAY=$(uname -n):$(echo $DISPLAY | cut -d ':' -f 2) -A NONE-0-0 -q qexp -l select=4:ncpus=16:mpiprocs=16 -l walltime=00:30:00 -l feature__matlab__MATLAB=1
$ qsub -I -v DISPLAY=$(uname -n):$(echo $DISPLAY | cut -d ':' -f 2) -A NONE-0-0 -q qexp -l select=4:ncpus=16:mpiprocs=16 -l walltime=00:30:00 -l license__matlab-edu__MATLAB=1
```
This qsub command example shows how to run Matlab with 32 workers in following configuration: 2 nodes (use all 16 cores per node) and 16 workers = mpiprocs per node (-l select=2:ncpus=16:mpiprocs=16). If user requires to run smaller number of workers per node then the "mpiprocs" parameter has to be changed.
......@@ -190,7 +190,7 @@ You can copy and paste the example in a .m file and execute. Note that the matla
### Non-Interactive Session and Licenses
If you want to run batch jobs with Matlab, be sure to request appropriate license features with the PBS Pro scheduler, at least the ` -l __feature__matlab__MATLAB=1` for EDU variant of Matlab. More information about how to check the license features states and how to request them with PBS Pro, [look here][2].
If you want to run batch jobs with Matlab, be sure to request appropriate license features with the PBS Pro scheduler, at least the ` -l license__matlab-edu__MATLAB=1` for EDU variant of Matlab. More information about how to check the license features states and how to request them with PBS Pro, [look here][2].
In case of non-interactive session read the [following information][2] on how to modify the qsub command to test for available licenses prior getting the resource allocation.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment