Using the PBS / Torque queueing environment
The main commands for interacting with the Torque environment are:
- qstat View queued jobs.
- qsub Submit a job to the scheduler.
- qdel Delete one of your jobs from queue.
Job script parameters
Parameters for any job submission are specified as #PBS comments in the job script file or as options to the qsub command. The essential options for the cluster include:
#PBS -l nodes=1:ppn=14
sets the size of the job in number of processors:
nodes=N sets the number of nodes needed.
ppn=N sets the number of cores per node.
#PBS -l walltime=8:00:00
sets the total expected wall clock time in hours:minutes:seconds. Note the wall clock limits for each queue.
Example job scripts
A program using 14 cores on a single node:
#!/bin/bash #PBS -l nodes=1:ppn=14 #PBS -l walltime=8:00:00 #PBS -q normal #PBS -m ae #PBS -M your.email@address module load bowtie2-184.108.40.206 bowtie2 -x /path/to/genome -p 14 -1 /path/to/forwardreads.fast -2 /path/to/reversereads.fastq -S /path/to/outputfile.sam
Assuming the above job script is saved as the text file example.job, the command to submit it to the PBSPro scheduler is:
No additional parameters are needed for the qsub command since all the PBS parameters are specified within the job script file. IMPORTANT
Note that in the above job script example the working directory is on the Lustre file system. Do not use your home directory for the working directory of your job. Use the directory allocated to you on the fast Lustre parallel file system:
where USERNAME is replace by your user name on the CHPC cluster.
Always provide the full absolute path to your Lustre sub-directories. Do not rely on a symbolic link from your home directory. Hybrid MPI/OpenMP
For example, to request an MPI job on one node with 12 cores per MPI rank, so that each MPI process can launch 12 OpenMP threads, change the -l parameters:
- PBS -l select=1:ncpus=24:mpiprocs=2:nodetype=haswell_reg
There are two MPI ranks, so mpirun -n 2 … . Example interactive job request
To request an interactive session on a single node, the full command for qsub is:
qsub -I -P PROJ0101 -q smp -l select=1:ncpus=24:mpiprocs=24:nodetype=haswell_reg
-I selects an interactive job you still must specify your project the queue must be smp, serial or test interactive jobs only get one node: select=1 for the smp queue you can request several cores: ncpus=24 you can run MPI code: indicate how many ranks you want with mpiprocs=
If you find your interactive session timing out too soon then add -l walltime=4:0:0 to the above command line to request the maximum 4 hours.
Much of this content has been adapted from the Quick Start Guide at CHPC.