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 use more than one core/slot to gain performance. It is possible that a multi-threaded application will use all of the possible resources on a node (from a core/slot perspective). This will obviously have an impact on other users of the node, who may already be running jobs on the same node.
Therefore if you are running multi-threaded code you need to ask for exclusive use of a node. You should bear in mind when using this particular directive (-x), you reserve all of the cores/slots on the node (depending on the node this may be up to 28 slots/cores). We ask that you don't run anymore than 10 jobs with the (-x) flag 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/09C01
Using the (-x) directive in a jobscript (Stata 15 MP16)
#BSUB -q short-eth
#BSUB -J My_Parallel_job
#BSUB -oo MyPar-%J.out
#BSUB -eo MyPar-%J.err
module add stata/15
stata-mp -b do stata15_example.do
All of the following applications should be run with the (-x) directive:
- Stata14/15 MP16
- Matlab (Parallel Computing Toolbox)