Chart Calculations Overview

Understand the underlying charts calculations.

Core Calculations

Underlying calculations for the Cores chart.

The following categories are reported by the Cores chart:
  • total number of cores allocated to running jobs
  • total number of cores allocated to queued jobs
  • total number of cores allocated to suspended jobs
  • total number of cores allocated to jobs that are on hold
  • total number of cores allocated to jobs that are waiting
  • total number of available cores

The below calculations are used to determine the values reported by the Cores chart.

Running Cores

For each job that is running (job state = running, exiting), sum (∑) the number of requested cores for each job (Resources_List.ncpus).

Total Running Cores = Resources_List.ncpusJob1 + Resources_List.ncpusJob2 + ....... Resources_List.ncpusJobn

Queued Cores

For each job that is queued (job state= queued), sum (∑) the number of requested cores for each job (Resources_List.ncpus).

Total Queued Cores = Resources_List.ncpusJob1 + Resources_List. ncpusJob2 + ....... Resources_List. ncpusJobn

Suspended Cores

For each job that is suspended (job state= suspended), sum (∑) the number of requested cores for the job (Resources_List.ncpus).

Total Suspended Cores = Resources_List.ncpusJob1 + Resources_List. ncpusJob2 + ....... Resources_List. ncpusJobn

Held Cores

For each job that is held (job state= held), sum (∑) the number of requested cores for the job (Resources_List.ncpus).

Total Held Cores = Resources_List.ncpusJob1 + Resources_List. ncpusJob2 + ....... Resources_List. ncpusJobn

Waiting Cores

For each job that is waiting (job state= waiting), sum (∑) the number of requested cores for the job (Resources_List.ncpus).

Total Waiting Cores = Resources_List.ncpusJob1 + Resources_List. ncpusJob2 + ....... Resources_List. ncpusJobn

Available Cores (Capacity)

Calculate available cores by adding the available NCPUs for each node:

Node1NCPUS + Node2NCPUS + Node3NCPUS +........ + NodenNCPUS

Other Cores

For each job in any other state (job state= transitioning, suspended - workstation busy), sum (∑) the number of requested cores for the job (Resources_List.ncpus).

Total Other Cores = Resources_List.ncpusJob1 + Resources_List. ncpusJob2 + ....... Resources_List. ncpusJobn

Node Calculations

Underlying calculations for the Dashboard Nodes chart.

The categories reported by the Nodes chart are determined by grouping nodes by state. Additionally, there is special logic to determine whether a node is busy/free or idle/free. The below table shows the node states that are grouped and the corresponding state reported.
Table 1. Mapping of PBS Node State to Chart State Category
Chart State PBS Node State
Busy/Free
  • busy
  • job-busy
  • job-excl-busy
  • resv-exclusive
  • job-excl
Idle/Free
  • idle
  • free
Down
  • down
Other
  • stale
  • state-unknown
  • unresolvable
Offline
  • offline
  • provisioning
  • wait-provisioning

The below calculations are used to determine the values reported by the Nodes chart.

Down Nodes

Sum (∑) the number of nodes that are in a state = down.

Offline Nodes

Sum (∑) the number of nodes that are in a state = offline or provisioning or wait-provisioning.

Busy/Free Nodes

For nodes that are in any of the following states: busy, job-busy, job-excl-busy, resv-exclusive, job-excl, determine if the node is free or busy:

Free

Node is free when the number of busy CPUs are less than the available number of CPUs.

resources_available.ncpus - resources_assigned. ncpus > 0

Busy

Node is busy when the number of busy CPUS is equal to the number of available CPUs

resources_available.ncpus - resources_assigned.ncpus = 0

Sum (∑) the number of nodes that are in a state = free.

Sum (∑) the number of nodes that are in a state = busy.

Note: Nodes can have several states at a given time. If a node has multiple states AND one of those is a busy-type state (busy, job-busy, job-excl-busy, resv-exclusive, job-excl), the node is considered to be busy or free depending on the CPU allocation.

Otherwise if a node has multiple states and none of the states is a busy-type, the state of the node is set to the most recent state that was assigned to the node.

Idle/Free Nodes

For nodes that are in an idle or free state, determine if the node is free or idle:

Free

Node is free when there are any busy CPUs.

resources_assigned.ncpus > 0

Idle

Node is idle when the number of busy CPUs is 0.

resources_assigned.ncpus = 0.

Sum (∑) the number of nodes that are in a state = free.

Sum (∑) the number of nodes that are in a state = idle.

Other Nodes

Sum (∑) the number of nodes that are in a state = stale or state-unknown or unresolvable.

Job Count Calculations

Underlying calculations for the Jobs by State chart.

The following categories are reported by the Jobs by State chart:
  • total number of jobs in a running state
  • total number of jobs in a queued state
  • total number of jobs in a suspended state
  • total number of jobs in a held state
  • total number of jobs in a waiting state
  • total number of jobs in a finished state
  • total number of jobs in a transitioning state
  • total number of jobs in a exiting state
  • total number of job arrays that have been submitted
  • total number of jobs in any other state

The below calculations are used to determine the values reported by the Job Count chart.

Running Jobs

Sum (∑) the number of jobs that are running (job state=running).
Total number of running jobs = Job1state=R + Job2state=R + ....... Jobnstate=R

Queued Jobs

Sum (∑) the number of jobs that are queued (job state= queued).
Total number of running jobs = Job1state=Q + Job2state=Q + ....... Jobnstate=Q

Suspended Jobs

Sum (∑) the number of jobs that are suspended (job state= suspended).
Total number of running jobs = Job1state=S + Job2state=S + ....... Jobnstate=S

Held Jobs

Sum (∑) the number of jobs that are held (job state= held).
Total number of running jobs = Job1state=H + Job2state=H + ....... Jobnstate=H

Waiting Jobs

Sum (∑) the number of jobs that are waiting (job state= waiting).
Total number of running jobs = Job1state=W + Job2state=W + ....... Jobnstate=W

Finished Jobs

Sum (∑) the number of jobs that are finished (job state= finished).
Total number of running jobs = Job1state=F + Job2state=F + ....... Jobnstate=F

Transitioning Jobs

Sum (∑) the number of jobs that are transitioning (job state= transitioning).
Total number of running jobs = Job1state=T + Job2state=T + ....... Jobnstate=T

Exiting Jobs

Sum (∑) the number of jobs that are exiting (job state= exiting).
Total number of running jobs = Job1state=E + Job2state=E + ....... Jobnstate=E

Job Array Parent Jobs

Sum (∑) the number of job arrays that have been submitted.
Total number of job arrays = Job1JobArrayParent + Job2JobArrayParent + ....... JobnJobArrayParent

Other Jobs

Sum (∑) the number of jobs that are in any other state.