Page tree
Skip to end of metadata
Go to start of metadata

Users frequently inadvertently over-utilize when they mismatch the number of ppn requested in their job script, to the number of threads they request in their application command.  This often happens when users are making changes in between incarnations of their reusable job scripts.  For example, perhaps you've been running your BLAST jobs with 4 ppn and 4 threads, and decide you'd like to increase your threading behavior to "8".  You make the change on the command line, but forget to update the ppn value.  Of course, this is more likely to happen since you have at least two (2) places where you need to make the change in your job script.

Here's a really simple solution that will allow you to make the change in only one (1) place, resulting in less chance you will over-utilize:

  1. Assign ppn=# as you always have
  2. In any place where there is a numerical value for threads, simply substitute the following - ${PBS_NUM_PPN}


For example:


#!/bin/bash -login
#PBS -q main
#PBS -j oe
#PBS -l nodes=1:ppn=8,mem=8gb,walltime=10:00:00
module load BLAST+
blastn -task blastn -db swissprot -query prot.fasta -out test1.blast -evalue 0.001 -num_threads ${PBS_NUM_PPN}


Now just change "ppn" and the number of threads will be altered accordingly, and the resource request will matc


WARNING: There are a few applications that require you to use ppn=threads+1 to work correctly, and in those cases, the method above will result in over-utilization.HP