Using the exclusive directive (-x)
During normal usage, when you start a session on a node, your job will execute on a single core/slot. Certain applications are multi-threaded in their nature, which means that they will utilise more than one core/slot to gain performance.
Taking the above into consideration, it is possible that a multi-threaded application will utilise all of the possible resources on a node (from a core/slot perspective). This can obviously have an impact on other users, who may be running jobs on the same node.
A very important consideration when using this particular directive (-x) is that, you essentially reserve all of the cores/slots on the node.Thus we ask that you don't run anymore than 10 jobs with the (-x) flag in, at any one time. If you have a need for more resource or wish to discuss this further please email email@example.com
If you are using an application which is capable of multithreading (examples shown below) then you must use the exclusive flag (-x) in submission scripts or during an interactive/Xinteractive session. As detailed below.
Starting an exclusive access interactive session
Starting an exclusive access Xnteractive session
Using the (-x) directive in a jobsript (Gaussian)
#BSUB -oo Gauss.%J.out
#BSUB -eo Gauss.%J.err
#BSUB -J Gaussian09
module add gaussian/9C01
Using the (-x) directive in a jobscript (Stata 13 MP16)
#BSUB -q short
#BSUB -R 'select[sandy]'
#BSUB -J My_Parallel_job
#BSUB -oo MyPar-%J.out
#BSUB -eo MyPar-%J.err
module add stata/13
stata-mp -b do stata13_example.do
All of the following applications should be run with the (-x) directive:
- Stata12/13 MP16
- Matlab (Parallel Computing Toolbox)