- Home
- Getting Started
- Using the Cluster
- Software and Development
- Policies
- Courses
Budget and Accounting
Checking your Budget - susage
The susage command gives a quick overview of budget allocation and consumption for all projects you are associated with:
susage
Example output:
Project Total Budget Total usage Total usage (%) Budget 2026 Usage 2026 Usage 2026 (%)
------------------------- -------------- ------------- ----------------- ------------- ------------ ----------------
ai4a2026 60065.0 194.9 0.3 60000.4 130.3 0.2
ai4bio2025 60000.0 18030.0 30.0 60000.0 18030.0 30.0
ammagamma_phd 76176.0 46247.1 60.7 30000.5 71.5 0.2
| Column | Description |
|---|---|
| Project | Project account name |
| Total Budget | Total budget allocated across all years (standard hours) |
| Total usage | Total usage consumed across all years (standard hours) |
| Total usage (%) | Percentage of total budget consumed |
| Budget YYYY | Budget allocated for the current year |
| Usage YYYY | Budget consumed in the current year |
| Usage YYYY (%) | Percentage of the current year’s budget consumed |
Billing Policy
Budget consumption is measured in standard hours (stdh) and is calculated based on the resources allocated to a job and its elapsed wall-clock time.
Billing Formula
For each node allocated to a job, the billed units are determined by the most resource-intensive TRES (Trackable RESource) requested, weighted as follows:
| Resource | Weight |
|---|---|
| CPU | 0.4 stdh per CPU |
| Memory | 0.08 stdh per GB |
| GPU | 6.0 stdh per GPU |
The billed amount for a job is:
billed_hours = max(CPUs × 0.4, MemGB × 0.08, GPUs × 6.0) × elapsed_hours
For multi-node jobs, the per-node billing is summed across all allocated nodes.
This means the resource that occupies the largest fraction of a node’s cost determines the billing. Requesting even a single GPU is sufficient to make the GPU term dominant in nearly all realistic cases.
Example
A job requesting 1 GPU, 6 CPUs, and 18 GB of RAM (the defaults when allocating 1 GPU) running for 2 hours:
- CPU contribution: 6 × 0.4 = 2.4
- Memory contribution: 18 × 0.08 = 1.44
- GPU contribution: 1 × 6.0 = 6.0 ← maximum
Billed hours = 6.0 × 2 h = 12.0 stdh
Free Partition
The all_serial partition - used for interactive work on the login nodes - has all billing weights set to zero. Usage on this partition is free of charge and does not consume any project budget.
Budget Linearization
To ensure fair access across all projects and users, AImageLab-HPC uses a fairshare-based scheduling priority.
How it works
Each project is assigned a yearly budget, refreshed on January 1st each year. The scheduler continuously tracks usage over a rolling 30-day window and compares it against each project’s expected consumption rate (yearly_budget ÷ 12).
- Projects and users that have consumed less than their expected share in the last 30 days receive higher scheduling priority.
- Projects and users that have consumed more receive lower scheduling priority.
This is a soft mechanism: jobs are never blocked or cancelled, but their position in the queue is adjusted based on recent usage relative to budget.
Two-level fairshare
Priority is computed at two levels:
- Account level: projects with a larger budget share and lower recent usage are favoured.
- User level (within a project): among users of the same project, those who have consumed less recently are scheduled first.
Practical advice
- Spread computations evenly over time rather than submitting large bursts - sustained usage close to your monthly share keeps your priority stable.
- If you have exceeded your recent share, your jobs will still run, just with lower priority relative to other users.
- Unused budget does not carry over: on January 1st, each project’s yearly allocation is reset to its assigned value.