Workload Analyzer 📊
A simple tool for monitoring and analyzing GPU and system resource usage during AI/ML workloads.
🌟 Features
- 📈 Real-time monitoring of GPU utilization, memory usage, and system resources
- 🔍 Detailed visualization of resource usage over time
- 💡 Intelligent recommendations for workload optimization
- 🚀 Easy-to-use CLI interface
- 📝 Comprehensive statistics export
🔧 Installation
Using pip
pip install workload-analyzer
Development setup
# Clone the repository
git clone https://github.com/yourusername/workload-analyzer
cd workload-analyzer
# Install using uv with development dependencies
uv sync --dev
📋 Requirements
- Python 3.12+
- NVIDIA GPU with nvidia-smi (for GPU monitoring)
🚀 Quick Start
# Run a command with default settings
workload-analyzer "python train_model.py"
# Specify timeout and polling interval
workload-analyzer "python train_model.py" --timeout 300 --interval 5
📊 Output
The tool generates:
-
Statistics file: JSON format data with all recorded measurements
-
Visualizations:
- GPU memory usage over time
- System memory consumption
- CPU and disk utilization
- Network usage
- Process memory statistics
-
Optimization recommendations based on resource utilization patterns:
- GPU memory sizing recommendations
- Compute utilization insights
- Memory bandwidth analysis
- System resource optimization tips
All outputs are saved to workload_results/ by default (configurable with --output-dir).
🛠️ Configuration options
--timeout Time to monitor in seconds (default: 120)
--interval Polling interval in seconds (default: 3)
--recommendations Enable workload optimization recommendations (default: True)
--output-dir Directory to save outputs (default: workload_results/)
--verbose Enable verbose logging (default: True)
--version Print version information
❕ License
Package is licensed under Apache 2.0 license. Free to use as you like, but a cite of the package is welcome:
@misc{skafte_workload_analyzer,
author = {Nicki Skafte Detlefsen},
title = {Workload-Analyzer},
howpublished = {\url{https://github.com/SkafteNicki/workload_analyzer}},
year = {2025}
}
Metadata
Release files for workload-analyzer 0.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| workload_analyzer-0.0.7.tar.gz | 95.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| workload_analyzer-0.0.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 112.7 kB
Release files / workload_analyzer-0.0.7.tar.gz
| Download URL | workload_analyzer-0.0.7.tar.gz |
|---|---|
| Size | 95.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5f031da5b17fea26feb373c2d554d8e30d68ac554d35847777e6c7212f946ccb
|
|
BLAKE2b-256 checksum How to use checksums |
d61f5d05e93549f9cde061faf12fa2019bf5a0f8ff3406c5f4da0e0a3834c56c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.7.10
|
Release files / workload_analyzer-0.0.7-py3-none-any.whl
| Download URL | workload_analyzer-0.0.7-py3-none-any.whl |
|---|---|
| Size | 17.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a4ee3d7db281e6262d77a3730d603b5e32deec3d0bb4f70420fd0f7efa97bea0
|
|
BLAKE2b-256 checksum How to use checksums |
f70d1129e21dee017e4836ddedd73cbb7f4396e6f54692abe7a64ab4445b9c8a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.7.10
|