Search dashboard Export Theme
GPU Resource BI Unified board view for SSSD users across Slurm, JupyterHub and raw SSH workloads.
Today 7 days 30 days Quarter
Tracked cluster DAH2, DAH01 and incoming DAH03
Compute estate 2x H100 NVL, 2x RTX A6000, 4x H200 planned
Host profile 1 TB RAM, 112 cores / 224 threads on DAH2
Billing rate 0.04 / GiB-h
Billable GiB-hours - VRAM multiplied by runtime
Estimated charge - Rate fixed at 0.04
GPU compute hours - One row equals one active minute
Active users - Network identities with VRAM allocation
VRAM Allocation Timeline Average GiB allocated by user over the selected range.
Node Share GiB-hours by server inventory.
User Cost Ranking Computed from GiB-hours at 0.04.
Access Path Mix Hybrid Slurm, notebook and shell usage.
Accounting Model The TXT converges on normalized MariaDB storage and kernel-level ownership.
01 NVML process sampling

GPU memory is captured at PID level and grouped per GPU every minute.

02 SSSD username resolution

The PID owner UID is mapped back to the network username through NSS.

03 Normalized fact table

Users and servers are upserted once, then history rows store server, user, GPU and VRAM bytes.

04 Board metric

GiB-hours combines memory footprint and runtime, then applies the 0.04 rate.

Node Inventory Current and planned GPU capacity mentioned in the TXT.
Per-User Billing Audit User, server and memory used by hour.
CSV
User Server Access Hours Avg VRAM Peak VRAM GiB-hours Charge
Board SQL Summary query aligned with the normalized schema from the TXT.
SELECT
    u.username AS user,
    s.hostname AS server,
    s.gpu_model,
    ROUND(COUNT(*) / 60, 1) AS total_hours_used,
    ROUND(AVG(h.vram_bytes) / 1024 / 1024 / 1024, 2) AS avg_vram_gib,
    ROUND(MAX(h.vram_bytes) / 1024 / 1024 / 1024, 2) AS peak_vram_gib,
    ROUND(SUM(h.vram_bytes / 1024 / 1024 / 1024) / 60, 1) AS total_gib_hours,
    ROUND((SUM(h.vram_bytes / 1024 / 1024 / 1024) / 60) * 0.04, 2) AS charge
FROM gpu_user_history h
JOIN users u ON h.user_id = u.user_id
JOIN servers s ON h.server_id = s.server_id
WHERE h.timestamp >= DATE_FORMAT(NOW(), '%Y-%m-01')
GROUP BY h.user_id, h.server_id
ORDER BY total_gib_hours DESC, u.username ASC;
Search Dashboard