#
Running multi-threaded jobs
If users want to use multiple cores on a compute node to run a multi-threaded application, they need to inform the scheduler - this allows jobs to use multiple cores without needing to rely on any interconnect. Using multiple CPU cores is achieved by specifying the -n
or --ntasks=<number>
option in either your submission command or the scheduler directives in your job script. The --ntasks
option informs the scheduler of the number of cores you wish to reserve for use. If the parameter is omitted, the default --ntasks=1
is assumed. You could specify the option -n 4
to request 4 CPU cores for your job. Besides the number of tasks, you will need to add --nodes=1
to your scheduler command or at the top of your job script with #SBATCH --nodes=1
, this will set the maximum number of nodes to be used to 1 and prevent the job selecting cores from multiple nodes.
#!/bin/bash -l
#SBATCH --nodes=2
#SBATCH --ntasks=2
#SBATCH --mem=200
echo "Example asking for 2 CPU cores and 2 nodes"
If you request more cores than are available on a node in your research environment, the job will not run until a node capable of fulfilling your request becomes available. The scheduler will display the error in the output of the squeue
command