Job Accounting
The charge unit for Delta is the service unit (SU). This corresponds to the equivalent use of one compute core utilizing less than or equal to 2G of memory for one hour, or 1 GPU or fractional GPU using less than the corresponding amount of memory or cores for 1 hour (see table below). Charges are based on the resources that are reserved for your job and do not necessarily reflect how the resources are used. Charges are based on either the number of cores or the fraction of the memory requested, whichever is larger.
Node Type |
Service Unit Equivalence |
|||
|---|---|---|---|---|
Cores |
GPU Fraction |
Host Memory |
||
CPU Node |
1 |
N/A |
2 GB |
|
GPU Node |
Quad A100 |
16 |
1 A100 |
62.5 GB |
Quad A40 |
16 |
1 A40 |
62.5 GB |
|
8-way A100 |
16 |
1 A100 |
250 GB |
|
8-way H200 |
12 |
1 H200 |
250 GB |
|
8-way MI100 |
16 |
1 MI100 |
250 GB |
|
Note that a weighting factor will discount the charge for the reduced-precision A40 nodes, as well as the novel AMD MI100 based node - this will be documented through the ACCESS SU converter.
Also note that 1 GB of memory here means 1e9 bytes (1,000,000,000), not 2^30 bytes (1,073,741,824).
Local Account Charging
Use the accounts command to list the accounts available for charging.
CPU and GPU resources will have individual charge names.
For example, in the following, bbka-delta-cpu and bbka-delta-gpu are available for user kingda to use for the CPU and GPU resources.
$ accounts
Project Summary for User 'kingda':
Project Description Balance (Hours) Deposited (Hours)
-------------- --------------------------- ----------------- -------------------
bbka-delta-gpu ncsa/delta staff allocation 5000000 5000000
bbka-delta-cpu ncsa/delta staff allocation 100000000 100000000
Job Accounting Considerations
A node-exclusive job that runs on a compute node for one hour will be charged 128 SUs (128 cores x 1 hour)
A node-exclusive job that runs on a 4-way GPU node for one hour will be charged 4 SUs (4 GPU x 1 hour)
A node-exclusive job that runs on a 8-way GPU node for one hour will be charged 8 SUs (8 GPU x 1 hour)
QOSGrpBillingMinutes
If you see QOSGrpBillingMinutes under the Reason column for the squeue command, as in:
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
1204221 cpu myjob .... PD 0:00 5 (QOSGrpBillingMinutes)
Then the resource allocation specified for the job (e.g., xyzt-delta-cpu) does not have sufficient balance to run the job based on the number of resources requested and the wall-clock time. Sometimes it may be other jobs from the same project, also in the QOSGrpBillingMinutes state, using the same resource allocation, that are preventing a job that would normally “fit” from running. To resolve this, the PI of the project needs to put in a supplement request using the same XRAS proposal system that was used for the current award, see Allocation Supplements and Extensions.
Reviewing Job Charges for a Project (jobcharge)
jobcharge in /sw/user/scripts/ will show job charges by user for a project. Example usage:
jobcharge_grp.py (click to expand/collapse)
The example jobcharge commands are showing results for the bbka-delta-gpu account. Accounts available to you are listed under “Project” when you run the accounts command.
Delta:dt-login03 ~ $ jobcharge -a bbka-delta-gpu -d 10 --detail | tail -20
144 bbka-delta-gpu 21141133 gpuMI100x8-interactive 0 nan csteffen interactive 2026-08-14T10:21:31 nan 2026-08-14T10:21:31 0 0
145 bbka-delta-gpu 21141134 gpuMI100x8-interactive 10 billing=500,cpu=1,gres/gpu:mi100=1,gres/gpu=1,mem=1000M,node=1 csteffen interactive 2026-08-14T10:21:45 2026-08-14T10:21:46 2026-08-14T10:21:56 500 0
146 bbka-delta-gpu 21141137 gpuMI100x8-interactive 11 billing=1000,cpu=1,gres/gpu:mi100=2,gres/gpu=2,mem=1000M,node=1 csteffen interactive 2026-08-14T10:21:58 2026-08-14T10:22:03 2026-08-14T10:22:14 1000 0
147 bbka-delta-gpu 21141141 gpuMI100x8-interactive 19 billing=1500,cpu=1,gres/gpu:mi100=2,gres/gpu:mi210=1,gres/gpu=3,mem=1000M,node=1 csteffen interactive 2026-08-14T10:22:19 2026-08-14T10:22:19 2026-08-14T10:22:38 1500 0.01
148 bbka-delta-gpu 21141145 gpuMI100x8-interactive 0 nan csteffen interactive 2026-08-14T10:22:43 nan 2026-08-14T10:22:56 0 0
149 bbka-delta-gpu 21141806 gpuMI100x8-interactive 0 nan csteffen interactive 2026-08-14T10:34:28 nan 2026-08-14T10:34:58 0 0
150 bbka-delta-gpu 21141822 gpuMI100x8-interactive 12 billing=4000,cpu=1,gres/gpu:mi100=7,gres/gpu:mi210=1,gres/gpu=8,mem=1000M,node=1 csteffen interactive 2026-08-14T10:35:21 2026-08-14T10:35:22 2026-08-14T10:35:34 4000 0.01
____________SUMMARY____________
User Charge (SU)
--------------- -------------
arnoldg 0.41
csteffen 0.02
dadams 5.15
jingli 0.05
rbrunner 0.80
rundall 28.38
svcdeltajenkins 1.10
svcdeltaswmgt 5.63
yanzhan2 3.42
Total 44.96
Delta:dt-login03 ~ $
Delta:dt-login03 ~ $ jobcharge -a bbka-delta-gpu -d 10
Charges for user allusers and account bbka-delta-gpu from 2026-08-04-11:44:20 through 2026-08-14-11:44:20.
User Charge (SU)
--------------- -------------
arnoldg 0.41
csteffen 0.02
dadams 5.15
jingli 0.05
rbrunner 0.80
rundall 28.38
svcdeltajenkins 1.10
svcdeltaswmgt 5.63
yanzhan2 3.42
Total 44.96
Delta:dt-login03 ~ $
Delta:dt-login03 ~ $ jobcharge -h
Usage: jobcharge [-h] [-u USER] [-a ACCOUNT] [-s STARTTIME] [-e ENDTIME] [--detail] [-m MONTH] [-y YEAR] [-d DAYSBACK] [--all]
Optional Arguments:
-h, --help show this help message and exit
-u, --user USER System user account to get jobcharges for. Defaults to your own user, if no slurm account is specified.
-a, --account ACCOUNT
Slurm account to get jobcharge for. "accounts" command can be used to list your valid accounts.
-s, --starttime STARTTIME
Starting point of the time range to get jobcharges for. Default is one month before the current time.
-e, --endtime ENDTIME
Ending point of the time range to get jobcharges for. Default is the current time.
--detail, --details Display the full detailed table of job charges
-m, --month MONTH Get jobcharges for a specific month (1-12). Will override start end time arguments
-y, --year YEAR Get jobcharges for a specific year. Will override start end time arguments
-d, --daysback DAYSBACK
Get jobcharges from the previous N days. Will take precedence over all other time search arguments
--all By default the jobcharge script will only count jobs that have an end time during the specified time period. Using the --all flag will addtionally include any job that was
submitted during the queried time period. This can be useful for including currently running jobs in the count.
Delta:dt-login03 ~ $
Refunds
The Delta project is not able to offer refunds on a job-by-job basis. If compute time balance becomes an issue, the Delta project recommends submitting a supplement request with information supporting the request basis is due to job failures that meet the refund requirement.
Refunds are considered, when appropriate, for jobs that failed due to circumstances beyond user control and typically impact more than a single user.