===== Good Practice - Available parameters =====
**(please also cf. ''man qsub'')**
=== Example header for a batch job script: ===
#!/bin/bash --login
#$ -N [jobname]
# job resources
#$ -l mem_free=[xxxM]|[yyyG]
#$ -l h_rt=HH:MM:SS
#$ -q [name_of_job_queue]
#$ -pe [name_of_parallel_env] [no_of_cpu_cores]
# cd to execution path
#$ -cwd
# mail stuff
#$ -o stdout.out
#$ -e stderr.out
#$ -j [no|yes]
#$ -m [n|b|e|e,b,...]
#$ -M [name_of_your_mailbox]
(where "|" signifies **exclusive OR** and all lines beginning with **#$** are directives interpreted the batch job scheduler)\\
\\
=== Detailed description of the batch job directives: ===
#!/bin/bash --login
## invoke an appropriate **login** shell
\\
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\\
\\
#$ -N [jobname]
freely choose your own job name
(gotcha: string is not(!) allowed to start with a numerical character and special characters like #, @, ? and * are not(!) permitted)
\\
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\\
\\
The next directives ask for host resources your job needs, please choose carefully
#$ -l mem_free=[xxxM]|[yyyG]
sum of resident/physical memory in Mebibytes or Gibibytes used by all processes within your job
#$ -l h_rt=[HH:MM:SS]
hard runtime/wall clock time limit of your job in **HOURS:MINS:SECS**
\\
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\\
\\
#$ -q [name_of_job_queue]
(special) queue the job is to be scheduled (**parameter generally not needed**)
#$ -pe [name_of_parallel_env] [no_of_cpu_cores] (possible parallel environments are mp (runs on a single node) and ompi (multiple nodes)
(special) parallel environment and number of cores for your job
\\
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\\
\\
#$ -cwd
change to (current) directory, where your input files reside
\\
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\\
\\
#$ -o stdout.out
file where stdout of shell is redirected
#$ -e stderr.out
file where stderr of shell is redirected
#$ -j [no|yes]
stderr and stdout should (yes) or shouldn't (no) be redirected to same file/merged
\\
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\\
\\
#$ -m [n|b|e|e,b,...]
mails about job status changes (n, no mail; b, beginning; e, end; ...) are send to the address given in [name_of_mailbox]
or no mails (n) are send
#$ -M [name_of_your_mailbox]
only needed when mails should be send
\\
date of revision: 02-14-2020 © kraus