Why request a software license?
We use the Generic Resource (GRES) feature to request and reserve licenses for software for which we have only a limited number. When a job is submitted that includes a gres request, the scheduler looks to see whether there are, according to its records, sufficient licenses available for the software to run, and if there are, reserves them and schedules the job to run. If there are, then it holds the job until sufficient licenses are freed, thus preventing your job from running but exiting with an error because no software licenses were available.
Software modules that require a gres should note so when you load the module.
How to use a gres
As an example, let’s use the statistical software Stata as an example. To request software licenses, you add an additional resource request line to your PBS script indicating which gres (software) you want and how many. For example, to request a single license for Stata, you would use this line.
#PBS -l gres=stata:1
Some software will require more than one license, and examples include Abaqus and the Matlab Distributed Computing Server. Here is an example of requesting 12 Matlab Distributed Computer Server licenses.
#PBS -l gres=Matlab_Distrib_Comp_Engine:12