Skip to main content

Turn the laptops in the room into one pool of ML compute. Ad-hoc, zero-config LAN clusters for training and inference on whatever hardware you have.

Project description

onepool

Turn the laptops in the room into one pool of ML compute.

onepool makes any group of computers on the same local network — Windows, Linux, or macOS; NVIDIA, AMD, integrated graphics, or plain CPUs — into a single ad-hoc cluster for machine learning. Not just inference: real distributed training over ordinary WiFi is the headline feature.

pipx install onepool          # every machine, any OS

# machine A — anyone in the room
onepool up                    # start a pool, get a session code

# machines B, C, D
onepool join amber-fox-42     # zero config, auto-discovered

# machine A
onepool train run.yaml        # fine-tune across every machine in the pool
# Ctrl-C → clean teardown. Nothing persists. No accounts. No daemons.

Why

  • Existing tools don't do this. exo (archived) was inference-only and Apple-first. hivemind targets internet-scale volunteer computing. Ray and Horovod need DevOps expertise and homogeneous clusters. Nothing lets a study group pool three mismatched laptops for an evening of fine-tuning.
  • Heterogeneous is the default, not the edge case. A 6GB RTX 3050 and a 4GB GTX 1650 in the same pool, each doing work proportional to what it can actually handle — measured, not assumed.
  • WiFi is enough. Training uses a DiLoCo-style low-communication algorithm (many local steps, rare synchronization of small pseudo-gradients) plus LoRA adapters, so a sync round is megabytes, not gigabytes.
  • Session-based by design. A pool exists while its processes run and vanishes when they stop. Disposable clusters, not infrastructure.

Status

Pre-alpha, built in the open. Roadmap:

Milestone Scope Status
M0 CLI skeleton, hardware probe, onepool doctor ✅ done
M1 Zero-config discovery, join/leave, live dashboard 🔜 next
M2 Single-node LoRA fine-tuning path planned
M3 Distributed training (DiLoCo) across mixed hardware over WiFi planned
M4 Sync compression, rebalancing, first release planned
v0.2 Distributed inference planned

Try it now

git clone https://github.com/one-pool/onepool && cd onepool
uv sync
uv run onepool doctor    # what can this machine contribute to a pool?

onepool doctor detects your GPU(s) and tells you the exact PyTorch install command for your hardware — the one genuinely fiddly step on heterogeneous machines.

Design in one paragraph

Every node runs the same process. mDNS (plus a UDP-broadcast fallback) advertises presence; a human-readable session code carries a shared secret so only invited machines join. The node that submits a job coordinates it: it benchmarks each worker on the actual model, shards data proportional to measured throughput, and runs DiLoCo — each worker takes ~100 local AdamW steps, then the pool all-reduces int8-quantized pseudo-gradients (for LoRA runs, single-digit megabytes) into an outer Nesterov-SGD step. Workers that vanish mid-round are dropped and their shard redistributed; workers that appear are folded in at the next sync. The dashboard is a local web page served by the coordinator.

License

AGPL-3.0-or-later. Use it, fork it, learn from it — but derivatives stay open, including network services built on it. The onepool name and logo are project trademarks; see TRADEMARK.md.

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

onepool-0.0.1.tar.gz (36.8 kB view details)

Uploaded Source

Built Distribution

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

onepool-0.0.1-py3-none-any.whl (22.1 kB view details)

Uploaded Python 3

File details

Details for the file onepool-0.0.1.tar.gz.

File metadata

  • Download URL: onepool-0.0.1.tar.gz
  • Upload date:
  • Size: 36.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for onepool-0.0.1.tar.gz
Algorithm Hash digest
SHA256 0b04eb8e6b477e9dcab2b6a51e97e164c1722bf7d14aeac1d9752e1e94990469
MD5 5a0e598b4efe37821152c9f82474b9c8
BLAKE2b-256 6e720c37a0b19d2d0d8d84b70809a8a4fc94d431435b8c64e13919e04df2cbe0

See more details on using hashes here.

File details

Details for the file onepool-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: onepool-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 22.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for onepool-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a09d19bd5a2712ebfc6ef0ea3f6d6945df126b0704b326bfc760114600346ef1
MD5 09b829c2e7434fcb678137ebd6b441d9
BLAKE2b-256 6ec4f397f2d8adc54dbbe7c55aad30555f99271878530b5e61045b9ea5ad7ad5

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