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.