This page shows you how to run submit a bash script to Slurm. The runSingle script, accessible through the rcbio/1.2 module, converts an input bash script with sbatch command and submits a single job to the Slurm scheduler for you.
Features of the new way of submitting job:
Informative email notifications are sent when job fails or succeeds.
Get a better log with memory and CPU usage.
Auto re-run in case node fails.
When re-running on the same data folder, the user is asked to confirm to re-run or not if it was done successfully earlier.
# This will setup the path and environmental variables for the pipeline
module load rcbio/1.2
The bash script
cp /n/app/rcbio/1.2/bin/bashScript.sh .
# Run cat command to show the content of bashScript.sh
for i in A B; do
echo John >> John.txt; echo Mike >> Mike.txt
echo Nick >> Nick.txt; echo Julia >> Julia.txt
cat John.txt Mike.txt Nick.txt Julia.txt > all.txt
Submit the script to Slurm:
runSingleJob "bash bashScript.sh" "sbatch -p short -t 10:0 -c 1"
# Below is the output
Currently Loaded Modules:
1) gcc/6.2.0 2) python/2.7.12 3) rcbio/1.2
depend on no job
sbatch -p short -t 10 -c 1 --mail-type=FAIL --nodes=1 -J Job_bash_bashScript.sh -o /home/ld32/rcbio/flag/Job_bash_bashScript.sh.out -e /home/ld32/rcbio/flag/Job_bash_bashScript.sh.out /home/ld32/rcbio/flag/Job_bash_bashScript.sh.sh
# Submitted batch job 43976
Monitoring the jobs
You can use the command:
squeue -u $USER
To see the job status (running, pending, etc.). You also get two emails for each step, one at the start of the step, one at the end of the step.
Check job log
You can use the command:
ls -l flag
This command list all the logs created by the pipeline runner. *.sh files are the slurm scripts for each step, *.out files are output files for each step, *.success files means job successfully finished for each step and *.failed means job failed for each steps.
You also get two emails for each step, one at the start of the step, one at the end of the step.
Re-run the job
You can rerun this command in the same folder
runSingleJob bashScript.sh "sbatch -p short -t 10:0 -c 1"
This command will check if the earlier run is finished or not. If not, ask user to kill the running jobs or not, then ask user to rerun the successfully finished steps or not. Click 'y', it will rerun, directly press 'enter' key, it will not rerun.
To run your own script as Slurm pipeline
In the example above, we run a bash script. You can run any command you like: