===== 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