Annotated SLURM Script

From UFRC
Revision as of 22:52, 23 February 2016 by Moskalenko (talk | contribs) (Created page with "Category:SLURM {{HPG2}} This is a walk-through for a basic SLURM scheduler job script. Annotations are marked with bullet points. You can click on the link below to downlo...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Hpg2 wiki logo.png

HiPerGator 2.0 documentation

This is a walk-through for a basic SLURM scheduler job script. Annotations are marked with bullet points. You can click on the link below to download the raw job script file without the annotation. Values in brackets are placeholders. You need to replace them with your own values. E.g. Change '<job name>' to something like 'blast_proj22'.

Download raw source of the [{{#fileLink: scratch_local.PBS}} scratch_local.PBS] file.

  • Set the shell to use

{{#fileAnchor: slurm_job.sh}}

#!/bin/bash
COMMON SETTINGS
  • Name the job to make it easier to see in the job queue

{{#fileAnchor: slurm_job.sh}}

#SBATCH --job-name=<JOBNAME>
Optional
A group to use if you belong to multiple groups. Otherwise, do not use.

{{#fileAnchor: slurm_job.sh}}

#SBATCH --account=<GROUP>
;Email
:Your email address to use for all batch system communications
{{#fileAnchor: slurm_job.sh}}
<source lang=make>
##SBATCH --mail-user=<EMAIL>
What emails to send
NONE - no emails
ALL - all emails
END,FAIL - only email if the job fails and email the summary at the end of the job

{{#fileAnchor: slurm_job.sh}}

#SBATCH --mail-type=FAIL,END
Standard Output Log File
Use file patterns
%j - job id
%A-$a - Array job id (A) and task id (a)

{{#fileAnchor: slurm_job.sh}}

#SBATCH --output <my_job-%j.out
  • Batch error file

{{#fileAnchor: slurm_job.sh}}

#PBS -e testjob_$PBS_JOBID.err
  • Number of compute nodes and processor cores (equal to how many processes you will run simultaneously). Unless you use MPI programs keep nodes=1 and only change the ppn value.

{{#fileAnchor: slurm_job.sh}}

#PBS -l nodes=1:ppn=1
  • Memory per processor (nodes * ppn * pmem = total memory used by the job), use mb for megabytes or gb for gigabytes.

{{#fileAnchor: slurm_job.sh}}

#PBS -l pmem=1gb
  • Job run time in HOURS:MINUTES:SECONDS

{{#fileAnchor: slurm_job.sh}}

#PBS -l walltime=01:00:00
Recommended Optional Settings
  • If we're inside a job change to this directory instead of /home/$USER.

{{#fileAnchor: slurm_job.sh}}

[[ -d $PBS_O_WORKDIR ]] && cd $PBS_O_WORKDIR
  • Add host, time, and directory name for later troubleshooting

{{#fileAnchor: slurm_job.sh}}

date;hostname;pwd
END OF PBS SETTINGS

Below is the shell script part - the commands you will run to analyze your data. The following is an example.

  • Load the software you need

{{#fileAnchor: slurm_job.sh}}

module load ncbi_blast
  • Run the program

{{#fileAnchor: slurm_job.sh}}

blastn -db nt -query input.fa -outfmt 6 -out results.xml

date