Sun Grid Engine

Sun Grid Engine (SGE) is an alternative to SLURM, and it provides a similar set of commands, with slight variation. The documentation is a good place to start, or if you are familiar with [SLURM]({{ site.baseurl }}/docs/schedulers/slurm), we’ve translated the command conversion tables here:

Here are some common commands and flags in SGE and SLURM with their respective equivalents. Is there anything missing? Let us know.

User Commands SGE SLURM
Interactive login qlogin srun --pty bash or srun (-p "partition") --time=4:0:0 --pty bash For a quick dev node, just run "sdev"
Job submission qsub [script_file] sbatch [script_file]
Job deletion qdel [job_id] scancel [job_id]
Job status by job qstat -u \* [-j job_id] squeue [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 list qconf -sql squeue
List nodes qhost sinfo -N OR scontrol show nodes
Cluster status qhost -q sinfo
GUI qmon sview
Environmental
Job ID $JOB_ID $SLURM_JOBID
Submit directory $SGE_O_WORKDIR $SLURM_SUBMIT_DIR
Submit host $SGE_O_HOST $SLURM_SUBMIT_HOST
Node list $PE_HOSTFILE $SLURM_JOB_NODELIST
Job Array Index $SGE_TASK_ID $SLURM_ARRAY_TASK_ID
Job Specification
Script directive #$ #SBATCH
queue -q [queue] -p [queue]
count of nodes N/A -N [min[-max]]
CPU count -pe [PE] [count] -n [count]
Wall clock limit -l h_rt=[seconds] -t [min] OR -t [days-hh:mm:ss]
Standard out file -o [file_name] -o [file_name]
Standard error file -e [file_name] e [file_name]
Combine STDOUT & STDERR files -j yes (use -o without -e)
Copy environment -V --export=[ALL | NONE | variables]
Event notification -m abe --mail-type=[events]
send notification email -M [address] --mail-user=[address]
Job name -N [name] --job-name=[name]
Restart job -r [yes|no] --requeue OR --no-requeue (NOTE:
configurable default)
Set working directory -wd [directory] --workdir=[dir_name]
Resource sharing -l exclusive --exclusive OR--shared
Memory size -l mem_free=[memory][K|M|G] --mem=[mem][M|G|T] OR --mem-per-cpu=
[mem][M|G|T]
Charge to an account -A [account] --account=[account]
Tasks per node (Fixed allocation_rule in PE) --tasks-per-node=[count]
--cpus-per-task=[count]
Job dependency -hold_jid [job_id | job_name] --depend=[state:job_id]
Job project -P [name] --wckey=[name]
Job host preference -q [queue]@[node] OR -q
[queue]@@[hostgroup]
--nodelist=[nodes] AND/OR --exclude=
[nodes]
Quality of service --qos=[name]
Job arrays -t [array_spec] --array=[array_spec] (Slurm version 2.6+)
Generic Resources -l [resource]=[value] --gres=[resource_spec]
Lincenses -l [license]=[count] --licenses=[license_spec]
Begin Time -a [YYMMDDhhmm] --begin=YYYY-MM-DD[THH:MM[:SS]]
SGE SLURM
qstat

> qstat -u username
> qstat -f
squeue

> squeue -u username
> squeue -al
qsub

> qsub -N jobname
> qsub -l h_rt=24:00:00
> qsub -pe dmp4 16
> qsub -l mem=4G
> qsub -o filename
> qsub -e filename
> qsub -l scratch_free=20G
sbatch

> sbatch -J jobname
> sbatch -t 24:00:00
> sbatch -p node -n 16

> sbatch --mem=4000
> sbatch -o filename
> sbatch -e filename
# Interactive run, one core # Interactive run, one core
qrsh -l h_rt=8:00:00 salloc -t 8:00:00
interactive -p core -n 1 -t 8:00:00
qdel scancel
SGE for a single-core application SLURM for a single-core application
#!/bin/bash
#
#
#$ -N test
#$ -j y
#$ -o test.output
#$ -cwd
#$ -M $USER@yourschool.edu
#$ -m bea
# Request 5 hours run time
#$ -l h_rt=5:0:0
#$ -P your_project_id_here
#
#$ -l mem=4G
#

#!/bin/bash
#
#SBATCH -J test
#SBATCH -o test."%j".out
#SBATCH -e test."%j".err
# Default in slurm
#SBATCH --mail-user $USER@yourschool.edu
#SBATCH --mail-type=ALL
#SBATCH -t 5:0:0 # Request 5 hours run time
#SBATCH --mem=4000
#SBATCH -p normal


Comparison of some parallel environments set by sge and slurm:

SGE SLURM
$JOB_ID $SLURM_JOB_ID
$NSLOTS $SLURM_NPROCS

Last update: Feb 02, 2023