Important: Most software will only consume 1 CPU core - e.g., requesting 8 CPU cores for a PAUP job blocks other people using the unused 7 CPU cores. Example 1 below would likely be the most users should be basing their job scripts from. If in doubt, contact HPRC staff.
For more information about PBSPro please click to see guide. HPC staff should be able to assist researchers needing help with PBS scripts.
|
The following script is a rework of Example 2 to use the /fast/tmp
filesystem for a hyperthetical workflow that is I/O intensive. This example assumes 1 output file per job.
#!/bin/bash #PBS -j oe #PBS -m ae #PBS -N JobName2 #PBS -M FIRSTNAME.LASTNAME@my.jcu.edu.au #PBS -l walltime=3:00:00 #PBS -l select=1:ncpus=8 #PBS -l mem=32gb cd $PBS_O_WORKDIR shopt -s expand_aliases source /etc/profile.d/modules.sh echo "Job identifier is $PBS_JOBID" echo "Working directory is $PBS_O_WORKDIR" mkdir -p /fast/tmp/jc012345/myjobs cp -a myjob1.m myjob2.m myjob3.m myjob4.m myjob5.m myjob6.m myjob7.m myjob8.m /fast/tmp/jc012345/myjobs/ pushd /fast/tmp/jc012345/myjobs module load matlab matlab -r myjob1 & matlab -r myjob2 & matlab -r myjob3 & matlab -r myjob4 & matlab -r myjob5 & matlab -r myjob6 & matlab -r myjob7 & matlab -r myjob8 & wait # Wait for background jobs to finish. cp -a out1.mat out2.mat out3.mat out4.mat out5.mat out6.mat out7.mat out8.mat $PBS_O_WORKDIR/ popd rm -rf /fast/tmp/jc012345/myjobs |
Consider the possibility that you may be running more than one workflow at any given time. Using subdirectories is a good way of segregating workflows (at a storage layer).
Directive(s) | Description of purpose |
---|---|
| Sets the working directory for you job to <PATH>. |
| Explicit specification of file that will hold the standard output stream from you job. |
| Export environment variables to the batch job |
For full details on directives that can be used, use "man qsub
" on a HPC login node or look at online documentation for Torque.
The following variables can be useful within your PBS job script. Some are present in the examples above.
Variable | Description |
---|---|
| Job name specified by the user |
| Working directory from which the job was submitted |
| Home directory of user submitting the job |
| Name of user submitting the job |
| Script shell |
| Unique PBS job id |
| Host on which job script is running |
| Name of the job queue |
| File containing line delimited list on nodes allocated to the job (may be required for MPI jobs). |
| Path variable used to locate executables within the job script |