A lightweight HPC monitoring and predictive analytics tool
Project description
NØMAD-HPC
NØde Monitoring And Diagnostics — Lightweight HPC monitoring, visualization, and predictive analytics.
"Travels light, adapts to its environment, and doesn't need permanent infrastructure."
📖 Full Documentation — Installation guides, configuration, CLI reference, network methodology, ML framework, and more.
Quick Start
pip install nomad-hpc
nomad demo # Try with synthetic data
For production:
nomad init # Configure for your cluster
nomad collect # Start data collection
nomad dashboard # Launch web interface
Features
| Feature | Description | Command |
|---|---|---|
| Dashboard | Real-time multi-cluster monitoring with partition views | nomad dashboard |
| Workstation Monitoring | Track departmental workstations (CPU, memory, disk, users) | Dashboard → Workstations |
| Storage Monitoring | Monitor NFS servers, ZFS pools, IOPS, and client connections | Dashboard → Storage |
| Interactive Sessions | Monitor RStudio/Jupyter sessions with memory and age | Dashboard → Interactive |
| Data Readiness | Assess ML model readiness with sample size and variance analysis | nomad readiness |
| Diagnostics | Analyze network, storage, and node-level bottlenecks | nomad diag |
| Educational Analytics | Track computational proficiency development | nomad edu explain <job> |
| Alerts | Threshold + predictive alerts (email, Slack, webhook) | nomad alerts |
| ML Prediction | Job failure prediction using similarity networks | nomad predict |
| Community Export | Anonymized datasets for cross-institutional research | nomad community export |
Architecture
┌─────────────────────────────────────────────────────────────────────┐
│ NØMAD │
├───────────────┬───────────────┬───────────────┬─────────────────────┤
│ Collectors │ Analysis │ Viz │ Alerts │
├───────────────┼───────────────┼───────────────┼─────────────────────┤
│ disk │ derivatives │ dashboard │ thresholds │
│ iostat │ similarity │ network 3D │ predictive │
│ slurm │ ML ensemble │ partitions │ email/slack │
│ gpu │ edu scoring │ workstations │ webhooks │
│ nfs │ readiness │ storage │ │
│ workstation │ diagnostics │ interactive │ │
│ storage │ │ │ │
└───────────────┴───────────────┴───────────────┴─────────────────────┘
│
┌─────────┴─────────┐
│ SQLite Database │
└───────────────────┘
CLI Reference
Core Commands
nomad init # Setup wizard
nomad collect # Start collectors
nomad dashboard # Web interface
nomad dashboard --db file.db # Use specific database
nomad demo # Demo mode with synthetic data
nomad status # System status
Data Readiness & Diagnostics
nomad readiness # Check ML training readiness
nomad readiness -v # Verbose with feature details
nomad diag network # Network performance analysis
nomad diag storage # Storage health and I/O patterns
nomad diag node # Node-level resource bottlenecks
Educational Analytics
nomad edu explain <job_id> # Job analysis with recommendations
nomad edu trajectory <user> # User proficiency over time
nomad edu report <group> # Course/group report
Analysis & Prediction
nomad disk /path # Filesystem trends
nomad jobs --user <user> # Job history
nomad similarity # Network analysis
nomad train # Train ML models
nomad predict # Run predictions
Community & Alerts
nomad community export # Export anonymized data
nomad community preview # Preview export
nomad alerts # View alerts
nomad alerts --unresolved # Unresolved only
Dashboard Views
The web dashboard includes multiple views accessible via tabs:
- Cluster Overview: Real-time node status with health rings showing CPU utilization
- Network View: 3D job similarity network with failure clustering analysis
- Resources: CPU-hours, GPU-hours, and usage breakdown by group/user
- Activity: Job submission heatmap showing patterns by day and hour
- Interactive: Active RStudio and Jupyter sessions with memory usage
- Workstations: Departmental machines with CPU, memory, disk, and logged-in users
- Storage: NFS servers with ZFS pool health, capacity, and client connections
Toggle between light and dark themes with the Theme button.
Installation
From PyPI
pip install nomad-hpc
From Source
git clone https://github.com/jtonini/nomad-hpc
cd nomad-hpc && pip install -e .
Requirements
- Python 3.9+
- SQLite 3.35+
- sysstat package (
iostat,mpstat) - Optional: SLURM, nvidia-smi, nfsiostat
System Check
nomad syscheck
Documentation
- Installation & Configuration
- System Install (
--system) - Dashboard Guide
- Educational Analytics
- Network Methodology
- ML Framework
- Proficiency Scoring
- CLI Reference
- Configuration Options
License
Dual-licensed:
- AGPL v3 — Free for academic, educational, and open-source use
- Commercial License — Available for proprietary deployments
Citation
@software{nomad2026,
author = {Tonini, João Filipe Riva},
title = {NØMAD: Lightweight HPC Monitoring with Machine Learning-Based Failure Prediction},
year = {2026},
url = {https://github.com/jtonini/nomad-hpc},
doi = {10.5281/zenodo.18614517}
}
Contributing
See CONTRIBUTING.md for guidelines.
Contact
- Author: João Tonini
- Email: jtonini@richmond.edu
- Issues: GitHub Issues
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
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 nomad_hpc-1.2.6.tar.gz.
File metadata
- Download URL: nomad_hpc-1.2.6.tar.gz
- Upload date:
- Size: 292.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae64059561670fb3c2482a254d5ef670bfc0b989d320fee7f70269892b8f92c9
|
|
| MD5 |
d71fac3dc5a0e3b8c7041f8040b500a5
|
|
| BLAKE2b-256 |
e0d2018f010c48943313780253ee11382e46b169d8ca99532c54736358cde809
|
Provenance
The following attestation bundles were made for nomad_hpc-1.2.6.tar.gz:
Publisher:
publish.yml on jtonini/nomad-hpc
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nomad_hpc-1.2.6.tar.gz -
Subject digest:
ae64059561670fb3c2482a254d5ef670bfc0b989d320fee7f70269892b8f92c9 - Sigstore transparency entry: 1116739966
- Sigstore integration time:
-
Permalink:
jtonini/nomad-hpc@897f05d32880cf37195af7120cf55158fea788de -
Branch / Tag:
refs/tags/v1.2.6 - Owner: https://github.com/jtonini
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@897f05d32880cf37195af7120cf55158fea788de -
Trigger Event:
release
-
Statement type:
File details
Details for the file nomad_hpc-1.2.6-py3-none-any.whl.
File metadata
- Download URL: nomad_hpc-1.2.6-py3-none-any.whl
- Upload date:
- Size: 332.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
017cc8d7975e4ffa41db9d95bca052e5d0d9802a96dd5501799968c3b21fea8d
|
|
| MD5 |
00fb40bb5f99303a0971306f62f1aa70
|
|
| BLAKE2b-256 |
3dc5c16543cb1450f3d9d4f5aa0cf55171f1ea6ba463f4179efb657019beb0a6
|
Provenance
The following attestation bundles were made for nomad_hpc-1.2.6-py3-none-any.whl:
Publisher:
publish.yml on jtonini/nomad-hpc
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nomad_hpc-1.2.6-py3-none-any.whl -
Subject digest:
017cc8d7975e4ffa41db9d95bca052e5d0d9802a96dd5501799968c3b21fea8d - Sigstore transparency entry: 1116740021
- Sigstore integration time:
-
Permalink:
jtonini/nomad-hpc@897f05d32880cf37195af7120cf55158fea788de -
Branch / Tag:
refs/tags/v1.2.6 - Owner: https://github.com/jtonini
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@897f05d32880cf37195af7120cf55158fea788de -
Trigger Event:
release
-
Statement type: