Jobs running under PBS have a number of environment variables set when they start that can be useful for your job script.
Some of these variables are NCI specific and are not available on other PBS installations.
Environment Variable | Meaning |
---|---|
PBS_NCPUS | The number of CPUs requested for the entire job |
PBS_NGPUS | The number of GPUs requested for the entire job |
PBS_NNODES | The number of nodes your job is running on |
PBS_NCI_NCPUS_PER_NODE | The number of CPUs in each node in your job |
PBS_NCI_NUMA_PER_NODE | The number of NUMA domains in each node in your job |
PBS_NCI_NCPUS_PER_NUMA | The number of CPUs per NUMA domain in each node in your job |
PROJECT | The project that your job is running under |
PBS_JOBID | The job ID of your job |
PBS_JOBNAME | The name you gave to your job |
PBS_O_WORKDIR | The directory your job was submitted from |
PBS_O_QUEUE | The queue your job was submitted to |
PBS_NODEFILE | The location of a file containing the nodes allocated to your job |
PBS_NCI_JOBFS | The amount of JobFS allocated to your job |
Per Node Information
Information about NCPUS and NUMA domains per node are about the entire node. If your job does not request all the CPUs in the node, you will not have access to that many CPUs or NUMA domains in your job.
While these environment variables are set correctly at the start of your job, it's possible for your job script to overwrite values and they will no longer be accurate. The variables may also be incorrect if you use qsub -V
where these variables are already set (such as from inside another PBS job)