01 / The problem
A requested GPU is not necessarily a used GPU.
Scheduler records show what a job requested; telemetry shows what happened after the job began. Resource decisions require both.
The project analyzed Unity cluster jobs to distinguish efficient use from long-running or repeated underutilization. I led a four-person team, coordinated with Unity staff and faculty mentors, and translated the analysis into reports intended for operational decisions.
Project management, metric design, Python analysis, stakeholder reporting, and prioritization of actionable patterns with the research-computing team.
02 / Metrics
Rate and duration belong in the same measure.
Average utilization alone can hide the difference between a brief setup phase and hours of idle allocation. The workflow derives job-level measures from requested GPUs, elapsed time, compute utilization, memory utilization, and GPU type.
GPU compute usage
Observed processing utilization relative to the allocated resource.
GPU memory usage
Memory consumption compared with available GPU memory.
GPU-hours
Requested GPU count multiplied by job runtime.
Unused GPU-hours
Duration-weighted underutilization summarized by user or PI group.
| Category | Fields | Analytical use |
|---|---|---|
| Request | GPUs, GPU type, CPUs, memory | Allocated capacity |
| Time | Submit, start, end, elapsed, time limit | Wait and duration measures |
| Telemetry | GPU compute and memory usage | Observed utilization |
| Organization | Account and user | Group reports and targeted outreach |
03 / Workflow
From scheduler database to an operational report.
Validate jobs
Filter relevant CPU/GPU jobs, normalize dates, and handle unavailable recent windows with explicit fallback logic.
Calculate
Compute wait times, GPU-hours, memory and compute efficiency, balance, and request-versus-use discrepancy.
Summarize
Create user, PI-group, GPU-type, and time-window reports rather than relying on individual outliers.
Communicate
Surface patterns through a Streamlit dashboard, command-line reports, and configurable outreach templates.
04 / Deliverables
Analysis designed to support an intervention.
Separate analytics modules for both resource types
Group summaries connect job patterns to stakeholders
Configurable thresholds identify repeated underutilization
The public code supports wait-time analysis, efficiency plots, PI reports, CPU group statistics, and personalized outreach generation. The main practical contribution was connecting resource metrics to a repeatable reporting process instead of ending with a static exploratory notebook.
05 / Privacy
Individual results do not belong in a portfolio.
Cluster-level findings are intentionally summarized.
Job logs can contain usernames, account affiliations, job names, and workload details. This page therefore documents scale, methodology, and public tooling without publishing user-level rankings or operational outreach lists. Utilization also cannot by itself determine scientific value; some workloads legitimately reserve memory or compute unevenly.