Quick Guide
This table lists the most common command, environment variables, and job specification options used by the workload management systems and their equivalents (adapted from http://www.schedmd.com/slurmdocs/rosetta.html).
| User Commands | PBS/Torque | Slurm |
|---|---|---|
| Job submission | qsub [script_file] |
sbatch [script_file] |
| Interactive Job | qsub -I |
sinteractive |
| Job deletion | qdel [job_id] |
scancel [job_id] |
| Job status (by job) | qstat [job_id] |
squeue [-j job_id] |
| Job status (by user) | qstat -u [user_name] |
squeue [-u user_name] |
| Job hold | qhold [job_id] |
scontrol hold [job_id] |
| Job release | qrls [job_id] |
scontrol release [job_id] |
| Queue info | qstat -Q |
squeue |
| Queue access | qlist |
slist |
| Node list | pbsnodes -l |
sinfo -Nscontrol show nodes |
| Cluster status | qstat -a |
sinfo |
| GUI | xpbsmon |
sview |
| Environment | PBS/Torque | Slurm |
| Job ID | $PBS_JOBID |
$SLURM_JOB_ID |
| Job Name | $PBS_JOBNAME |
$SLURM_JOB_NAME |
| Job Queue/Account | $PBS_QUEUE |
$SLURM_JOB_ACCOUNT |
| Submit Directory | $PBS_O_WORKDIR |
$SLURM_SUBMIT_DIR |
| Submit Host | $PBS_O_HOST |
$SLURM_SUBMIT_HOST |
| Number of nodes | $PBS_NUM_NODES |
$SLURM_JOB_NUM_NODES |
| Number of Tasks | $PBS_NP |
$SLURM_NTASKS |
| Number of Tasks Per Node | $PBS_NUM_PPN |
$SLURM_NTASKS_PER_NODE |
| Node List (Compact) | n/a | $SLURM_JOB_NODELIST |
| Node List (One Core Per Line) | LIST=$(cat $PBS_NODEFILE) |
LIST=$(srun hostname) |
| Job Array Index | $PBS_ARRAYID |
$SLURM_ARRAY_TASK_ID |
| Job Specification | PBS/Torque | Slurm |
| Script directive | #PBS |
#SBATCH |
| Queue | -q [queue] |
-A [queue] |
| Node Count | -l nodes=[count] |
-N [min[-max]] |
| CPU Count | -l ppn=[count] |
-n [count]Note: total, not per node |
| Wall Clock Limit | -l walltime=[hh:mm:ss] |
-t [min] OR-t [hh:mm:ss] OR-t [days-hh:mm:ss] |
| Standard Output FIle | -o [file_name] |
-o [file_name] |
| Standard Error File | -e [file_name] |
-e [file_name] |
| Combine stdout/err | -j oe (both to stdout) OR-j eo (both to stderr) |
(use -o without -e) |
| Copy Environment | -V |
--export=[ALL | NONE | variables]Note: default behavior is ALL |
| Copy Specific Environment Variable | -v myvar=somevalue |
--export=NONE,myvar=somevalue OR--export=ALL,myvar=somevalue |
| Event Notification | -m abe |
--mail-type=[events] |
| Email Address | -M [address] |
--mail-user=[address] |
| Job Name | -N [name] |
--job-name=[name] |
| Job Restart | -r [y|n] |
--requeue OR--no-requeue |
| Working Directory | --workdir=[dir_name] |
|
| Resource Sharing | -l naccesspolicy=singlejob |
--exclusive OR--shared |
| Memory Size | -l mem=[MB] |
--mem=[mem][M|G|T] OR--mem-per-cpu=[mem][M|G|T] |
| Account to charge | -A [account] |
-A [account] |
| Tasks Per Node | -l ppn=[count] |
--tasks-per-node=[count] |
| CPUs Per Task | --cpus-per-task=[count] |
|
| Job Dependency | -W depend=[state:job_id] |
--depend=[state:job_id] |
| Job Arrays | -t [array_spec] |
--array=[array_spec] |
| Generic Resources | -l other=[resource_spec] |
--gres=[resource_spec] |
| Licenses | --licenses=[license_spec] |
|
| Begin Time | -A "y-m-d h:m:s" |
--begin=y-m-d[Th:m[:s]] |
See the official Slurm Documentation for further details.