A terminal UI dashboard for Slurm GPU cluster status
Project description
slurmviz
A terminal UI dashboard for monitoring Slurm GPU cluster status, built with Textual.
Features
- Node map — per-node GPU utilization bars with state indicators
- GPU summary — cluster-wide totals and per-user GPU/job breakdown
- All GPUs — per-GPU utilization bars with user/job info for every GPU in the cluster
- My jobs — your running and pending jobs at a glance
- Auto-refresh — configurable polling interval (default: 5s)
- Demo mode — realistic fake data when Slurm isn't available
Example Dashboard
┌─────────────────────────── slurmviz ──────────────────────────── 12:34:56 ┐
│ │
├── NODES ──────────────────────┬── GPU SUMMARY ────────────────────────────┤
│ │ │
│ ● node01 █████░░░ 5/8 mixed│ GPU CLUSTER │
│ ● node02 ████████ 8/8 alloc│ │
│ ● node03 ░░░░░░░░ 0/8 idle│ Total 128 Used 87 Free 33 │
│ ◐ node04 ██░░░░░░ 2/8 mixed│ ██████████████████░░░░░░░░░░░░ 26% free│
│ ● node05 ████████ 8/8 alloc│ │
│ ✗ node06 -------- 0/4 down│ ⚠ 8 GPUs offline (down/drain) │
│ ● node07 ██████░░ 6/8 mixed│ │
│ ● node08 ████████ 8/8 alloc│ PER-USER GPU USAGE │
│ ● node09 ░░░░░░░░ 0/4 idle│ USER GPUs JOBS │
│ ◐ node10 ██░░░░░░ 2/8 mixed│ ►you 16 3 ████░░░░ 13% │
│ ● node11 ████████ 4/4 alloc│ alice 12 2 ███░░░░░ 10% │
│ ● node12 ██████░░ 6/8 mixed│ bob 24 4 ██████░░ 20% │
│ ● node13 ████████ 8/8 alloc│ charlie 8 2 ██░░░░░░ 6% │
│ ● node14 ████░░░░ 4/8 mixed│ diana 16 3 ████░░░░ 13% │
│ ✗ node15 -------- 0/4 drain│ eve 8 1 ██░░░░░░ 6% │
│ ● node16 ██████░░ 6/8 mixed│ frank 3 1 █░░░░░░░ 2% │
│ │ │
├── ALL GPUs ───────────────────┴───────────────────────────────────────────┤
│ │
│ node01 ██████░░ 82% █████░░░ 70% ███████░ 91% ██████░░ 78% 5/8 │
│ node02 ████████ 95% ███████░ 88% ████████ 92% ████████ 97% 8/8 │
│ node03 ░░░░░░░░ 1% ░░░░░░░░ 0% ░░░░░░░░ 2% ░░░░░░░░ 0% 0/8 │
│ ... │
│ │
├── MY JOBS ────────────────────────────────────────────────────────────────┤
│ │
│ ◈ MY JOBS jobs:3 gpus:16 │
│ ID NAME ST TIME GPU NODE PART │
│ 1000042 train-llama RUN 12:34:56 8 node02 batch │
│ 1000051 finetune-vit RUN 3:21:00 4 node14 short │
│ 1000067 eval-bert RUN 0:45:12 4 node11 batch │
│ │
├───────────────────────────────────────────────────────────────────────────┤
│ q Quit r Refresh d Demo │
└───────────────────────────────────────────────────────────────────────────┘
Installation
pip install slurmviz
Development install
git clone https://github.com/VigneshSrinivasan10/slurmviz.git
cd slurmviz
pip install -e .
Usage
# Live mode (connects to Slurm)
slurmviz
# Demo mode (fake data, no Slurm required)
slurmviz --demo
# Custom refresh interval (seconds)
slurmviz -r 10
Keyboard Shortcuts
| Key | Action |
|---|---|
q |
Quit |
r |
Refresh immediately |
d |
Toggle demo mode |
1 |
Focus Nodes panel |
2 |
Focus Summary panel |
3 |
Focus GPUs panel |
4 |
Focus Jobs panel |
↑ / ↓ |
Scroll focused panel |
Requirements
- Python 3.10+
- Slurm commands (
sinfo,squeue) for live data — falls back to demo mode automatically if unavailable
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
slurmviz-0.2.0.tar.gz
(11.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file slurmviz-0.2.0.tar.gz.
File metadata
- Download URL: slurmviz-0.2.0.tar.gz
- Upload date:
- Size: 11.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
609551430892d9d58ab8c97430728942c7f339d5d92421a324951ac96d80dc29
|
|
| MD5 |
b70d4ee77c004abd82aa05430e8d6c13
|
|
| BLAKE2b-256 |
a868f101dc5dc7cc5cbf969c820a2f97a1e57cf0394b287d2e166973dda2ecc3
|
File details
Details for the file slurmviz-0.2.0-py3-none-any.whl.
File metadata
- Download URL: slurmviz-0.2.0-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c2a6f1d828cf8d32c9579b8a41a4d9004ea9d3acdc8c5294f4b3d9822e79406
|
|
| MD5 |
90e3506bd25347dc22c1747e31befd3f
|
|
| BLAKE2b-256 |
b3b25ebea029af883091860d7b890d1bf0609f2513ba48560209c0ad7bf56355
|