Skip to main content

PBS to Slurm Migration

Quick reference for users migrating from the old PBS/Torque system to Slurm.

Command Equivalents

PBS/Torque Slurm Description
qsub job.sh sbatch job.sh Submit a job
qsub -I srun --pty bash Interactive session
qstat squeue View jobs
qstat -u username squeue -u username Your jobs
qdel JOBID scancel JOBID Cancel a job
pbsnodes sinfo Node status
qstat -f JOBID scontrol show job JOBID Job details

Directive Equivalents

PBS/Torque Slurm Description
#PBS -N name #SBATCH --job-name=name Job name
#PBS -q queue #SBATCH --partition=partition Queue/partition
#PBS -l nodes=1:ppn=8 #SBATCH --nodes=1 --cpus-per-task=8 Nodes and cores
#PBS -l mem=4gb #SBATCH --mem=4G Memory
#PBS -l walltime=02:00:00 #SBATCH --time=02:00:00 Wall time
#PBS -o output.log #SBATCH --output=output.log Output file
#PBS -e error.log #SBATCH --error=error.log Error file
#PBS -M email #SBATCH --mail-user=email Email
#PBS -m abe #SBATCH --mail-type=ALL Mail events
#PBS -V #SBATCH --export=ALL Export environment
#PBS -t 1-10 #SBATCH --array=1-10 Job array

Environment Variables

PBS/Torque Slurm Description
$PBS_JOBID $SLURM_JOB_ID Job ID
$PBS_JOBNAME $SLURM_JOB_NAME Job name
$PBS_NODEFILE $SLURM_JOB_NODELIST Node list
$PBS_ARRAYID $SLURM_ARRAY_TASK_ID Array task ID
$PBS_NP $SLURM_NTASKS Number of tasks
$PBS_O_WORKDIR $SLURM_SUBMIT_DIR Submission directory

Key Differences

  • Slurm requires --account and --qos — run check_my_partitions to find yours
  • Slurm uses --cpus-per-task instead of ppn
  • Memory in Slurm is per-CPU (--mem-per-cpu) or total (--mem)
  • Slurm does not automatically change to the submission directory — add cd $SLURM_SUBMIT_DIR to your script if needed