Skip to main content

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


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

slurmviz-0.2.0-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

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

Hashes for slurmviz-0.2.0.tar.gz
Algorithm Hash digest
SHA256 609551430892d9d58ab8c97430728942c7f339d5d92421a324951ac96d80dc29
MD5 b70d4ee77c004abd82aa05430e8d6c13
BLAKE2b-256 a868f101dc5dc7cc5cbf969c820a2f97a1e57cf0394b287d2e166973dda2ecc3

See more details on using hashes here.

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

Hashes for slurmviz-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1c2a6f1d828cf8d32c9579b8a41a4d9004ea9d3acdc8c5294f4b3d9822e79406
MD5 90e3506bd25347dc22c1747e31befd3f
BLAKE2b-256 b3b25ebea029af883091860d7b890d1bf0609f2513ba48560209c0ad7bf56355

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page