Releases: PurdueRCAC/sacct-plot
Releases · PurdueRCAC/sacct-plot
v0.1.1
What's Changed
Test Infrastructure
- Added
scripts/anonymize_sacct.pyfor anonymizing raw sacct output into fixture data - Generated
tests/fixtures/sacct_3months.txt.gz— ~1.28M anonymized job records from a busy GPU cluster - Added
tests/conftest.pywithmock_sacctfixture that patchessubprocess.check_outputfor deterministic testing without a live cluster
Documentation
- Expanded README with full analytics guide covering allocation mode, wait time mode, grouping, filtering, bucketing, and real-world usage scenarios
- Added ROADMAP phases 6–12 covering wait time analysis,
--alloverlay, and comprehensive testing infrastructure - Updated ROADMAP to reflect completed Phase 5 (v0.1.0 merge) and Phase 6 (test fixtures)
Full Changelog: v0.1.0...v0.1.1
v0.1.0
sacct-plot v0.1.0
Initial release of sacct-plot — a command-line tool that visualizes instantaneous allocated resources (CPUs/GPUs) on Slurm clusters over time.
Features
- Sacct integration: Queries
sacctfor job records with full filter support (-u,-A,-r,-q,-s,-S,-E) - Event-sweep algorithm: O(N log N) vectorized computation of exact allocation step functions from job start/end events
- Grouping: Overlay series by account, user, or QOS (
--by) - GPU support: Plot GPU allocation with
--gpu - Time bucketing: Aggregate to arbitrary intervals (
--bucket 1h,--bucket 1d, etc.) with proper step-function integration (level × duration)--sum: Resource-hours per bucket (e.g. GPU·h)--mean: Time-weighted average allocation level--max/--min: Peak or minimum allocation within buckets
- Cumulative mode:
--cumulativeshows running total of bucketed values — useful for tracking accumulated compute spend over time - Top-N filtering:
--top Nkeeps the top N groups by total area, collapses the rest into "other" - Terminal rendering: Rich time-series plots via
tplotwith smart axis labels, configurable size, colors, and legend position - Stacked area view:
--stackedfor cumulative area visualization - Data export:
--datadumps the processed DataFrame for further analysis - Parquet caching: 10-minute TTL cache in
~/.cache/sacct/avoids repeatedsacctcalls - Configuration: Environment variable support with
SACCT_PLOTprefix via cmdkit