This release is a pre-release and may not be stable for production use.
Ladon-ML 🐉
The Hundred-Headed Guardian of Distributed Compute.
ladon-ml is a lightweight, infrastructure-level Python library designed to identify and reclaim Zombie Utilization in high-performance ML clusters. It is purpose-built for teams managing large-scale accelerator fleets (GPUs or specialized silicon like Trainium) where stalled kernels and silent hangs can lead to massive resource waste.
The Problem: Zombie Utilization
In distributed training, a "Zombie" is a node that reports 100% Compute Utilization and high power draw but provides 0% Functional Throughput. This usually happens due to:
- Stalled Kernels: An infinite loop in a custom op pinning the chip.
- Collective Deadlocks: A node waiting for a synchronization signal (Gloo/NCCL) that never arrives.
- Silent HBM Failures: Memory errors that stop the training loop but keep the hardware active.
Core Features
- Zero-Trust Telemetry: Correlates hardware-level metrics (Power, Thermal, Compute) with software-level progress (Network IO, Memory Delta, Gradient Updates).
- Inverse Correlation Detection: Identifies the signature of a zombie: high power/utilization + near-zero network/collective-communication traffic.
- Modular Reapers: Pluggable actions to "drain" a node, kill a specific process group, or signal orchestrators (Kubernetes/Slurm).
- Low Overhead: Written to run as a sidecar or a lightweight daemon with minimal impact on training latency.
Architecture
Ladon follows a Collector → Brain → Reaper pattern:
- Collectors: Interface with hardware drivers (e.g.,
NVML,Neuron SDK) to pull raw telemetry. - The Brain: Applies statistical analysis to detect anomalies and "Zombie" patterns over a sliding time window.
- The Reaper: Executes the reclamation policy (Log, Alert, or Kill).
Quick Start
Installation
pip install ladon-ml
Basic Usage
Run Ladon as a daemon to monitor the local node and detect stalled processes.
Python
import time
from ladon import LadonBrain, Collector
# Initialize with a 10-second sliding window
guardian = LadonBrain(window_size=10, sensitivity=0.05)
while True:
# Get telemetry from GPU/Trainium chips
stats = Collector.get_chip_telemetry()
status = guardian.analyze(stats)
if status == "ZOMBIE_DETECTED":
print("Alert: Stalled compute detected on Device 0!")
# Trigger your reclamation logic here (e.g., os.kill or k8s delete)
time.sleep(1)
Configuration
Ladon can be configured via ladon_conf.yaml:
YAML
thresholds:
compute_min: 90.0 # Min utilization to trigger "Pinned" state
net_max: 0.01 # Max network throughput (MB/s) for "Silent" state
window_seconds: 30 # How long to wait before declaring a Zombie
reclamation:
action: "SIGTERM" # Options: LOG, SIGTERM, DRAIN, CUSTOM
Why "Ladon"?
In Greek mythology, Ladon was the dragon with one hundred heads that guarded the golden apples. He never slept and each head watched a different part of the garden. Ladon-ML serves as that unblinking guardian for your compute garden, ensuring no single chip goes rogue and wastes your "golden" training time.
License
Apache 2.0
Metadata
Release files for ladon-ml 0.1.0a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ladon_ml-0.1.0a1.tar.gz | 10.2 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ladon_ml-0.1.0a1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.6 kB
Release files / ladon_ml-0.1.0a1.tar.gz
| Download URL | ladon_ml-0.1.0a1.tar.gz |
|---|---|
| Size | 10.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
46cd2855bbd6eb1d41b5fe0c47fdbabe3377142265e73541a9620d2b6ba56285
|
|
BLAKE2b-256 checksum How to use checksums |
f1bf946dfe1d2cd16d5dae9f32ae0e2826fb5301d7e4b093682f9068a5b6584d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.
Transparency logRelease files / ladon_ml-0.1.0a1-py3-none-any.whl
| Download URL | ladon_ml-0.1.0a1-py3-none-any.whl |
|---|---|
| Size | 10.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
821159c6b137ccbc565f2af676bff15e79eec4dca54def04047929a32eab088d
|
|
BLAKE2b-256 checksum How to use checksums |
897aa2ef54d22f79bc911a4c75128f306f31d136eaf35fe6ec677d37c312fc59
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.
Transparency logSecurity for ladon-ml 0.1.0a1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for ladon_ml-0.1.0a1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.