The formula for calculating Service Units (SUs) for Gadi may look daunting, but it’s easy when you know how. Let’s take the following PBS script as an example. I’ve highlighted the walltime, ncpus and the memory, as these are required for the calculation:
PBS script request:
#PBS -P xy12
#PBS -q hugemem
#PBS -l walltime=48:00:00
#PBS -l ncpus=28
#PBS -l mem=250GB
#PBS -l jobfs=1GB
#PBS -l software=matlab_unisa
#PBS -l wd
Important: Gadi has a maximum walltime of 48 hours, and it is not possible to extend this. If your job requires more than 48 hours, you will need to put break-points in your script. Intersect’s eResearch Analyst at UniSA can assist you with this.
Formula:
Job cost = ncpus_request x max[1, (ncpus_per_node/mem_per_node)x(mem_request/ncpus_request)] x walltime_usage x queue_charge_rate
First of all, we need to run the calculation in the square brackets:
(max) ncpus_per_node. (actual) mem_request
—————————— X —————————–
(max) mem_per_node (actual) ncpus_request
The ncpus_per_node and the mem_per_node figures can be found on the NCI’s Queue Limits. In this case, because we need 28 ncpus but 250GB of memory, we have no choice but to select the hugemem queue. We use the maximum of the figures (on the hugemem queue) for the first fraction: 48 ncpus / 1470GB
The second fraction is the actual requested numbers from the PBS script above: 250GB / 28 ncpus
48 250 1200
—– X —- = ——– = 0.29
1470 28 41160
Thus, the formula now reads: Job cost = ncpus_request x max[1, (0.29)] x walltime_usage x queue_charge_rate
max[1, (0.29)] means that we take the larger of the two numbers in the square bracket – in this case 1, and use it in the calculation, so:
Job cost = 28 (ncpus requested in script) x 1 (the larger of [1, (0.29)] x 48 (walltime usage requested in script) x 3 (SUs/hour) = 4032 SUs
Told you it was easy!
Last updated: 27 Oct 2022
Source: