Job script template

From FarmShare

Jump to: navigation, search

This is meant to be a script you can copy and adapt to get up and running quickly. A similar one appears at the bottom of the man page for 'qsub'.

#!/bin/bash
# the above line is called a 'hashbang' and sets which shell you run under; you probably want bash
# it's not real hashbang but is parsed by qsub for the '-S' option

#
# set the name of the job; this will appear in the job listing
#$ -N example_job
#

#
# set the maximum memory usage (per slot)
#$ -l mem_free=2G
#
# on other clusters this memory resource may have a different name

#
# set the number of slots, replace '1' with a larger number if needed
#$ -pe shm 1
#
# on other clusters this pe may have a different name

#
# set the maximum run time, hh:mm:ss, default is 48hrs on FarmShare
#$ -l h_rt=12:00:00
#

#
# send mail when job ends or aborts
#$ -m ea
#

#
# specify an email address
#$ -M $USER@stanford.edu
#

# check for errors in the job submission options
#$ -w e
#

##We strongly discourage users from exporting their environment onto the compute node. 
##Doing this pretty much means the job is non-reproductible, 
##because all the required settings are not captured in the job script.
##
## pass the current environment variables
##$ -V
##

# join the stdout and stderr streams into one file
#$ -j y
#

/full/path/to/command arg1 arg2 arg3 ...

#make sure that the command above actually doesn't use more memory or CPU than you specified.


Of course, you can just use the equivalent command line:

 qsub -S /bin/bash -N example_job -l mem_free=2G -pe shm 1 -m ea -M $USER@stanford.edu -w e -j y /full/path/to/command arg1 arg2 arg3

You may need to also have '-b y' if the command is a binary and not a script.

Personal tools
Toolbox
LANGUAGES