Skip to content

Resource Allocation

Before you submit a job, first estimate its CPU, memory and walltime needs, then express those requirements explicitly in the job resource list so the scheduler can allocate the right resources and enforce sensible limits.

Warning

Your job can only use the resources you request. If it tries to use more CPU cores or memory than allowed, it will be throttled, or stopped by the system if it exceeds its memory allocation. To avoid issues, always request the right amount of resources for your job.

Note

If you submit a job without a resource list, the scheduler will apply its site defaults 1 CPU and 512 MB of memory. If your job requires more, it may run slowly or be terminated for exceeding these limits.

Resource List

You can list all available node resources using the pbsnodes -a command.

Resource Description
select Number of resource chunks (each chunk is placed on a single node)
ncpus Number of CPU cores per chunk
mem Amount of memory per chunk
walltime Maximum runtime (hh:mm:ss)

Node Resources

The ncpus resource counts logical CPUs (hardware threads). Every physical core provides two threads, so for example ncpus=8 gives your job 4 physical cores with 2 threads each. Part of each node is reserved for the operating system.

Node class Nodes Available ncpus Available mem scratch_local scratch_memory
Density pbs-mom1 – pbs-mom12 352 512 GB 5 TB 128 GB
Frequency pbs-mom13 – pbs-mom17 196 768 GB 5 TB 128 GB

Tip

A single chunk has to fit on one node. If your job needs more than 352 CPUs or more than 768 GB of memory, split it into multiple chunks, e.g. select=2:ncpus=176:mem=256gb.

Example

#!/bin/bash
#PBS -l select=1:ncpus=4:mem=8gb
#PBS -l walltime=02:00:00

module load mysoftware      # Load any necessary modules
./my_program                # Run your application
In this example, the job requests 4 CPU cores and 8 GB of memory on a single node, with a maximum runtime of 2 hours.