Getting Started
This quickstart shows how to run a minimal local setup from the compute-all repository: one orchestrator and one or two Physical Nodes (PNodes) on your machine, submit a network, and see DCNR in action.
Prerequisites
- Bazel (Bazelisk recommended) — the primary build system (plain
go buildalso works) - Go 1.24+ (managed by Bazel)
- Docker (optional, for containerized runs; images are built with Bazel)
- An S3-compatible store for VNode state (MinIO works locally)
git clone https://github.com/Free-LLM/compute-all
cd compute-all
bazel build //... # build everything
bazel test //... # run the test suite
1) Start the Orchestrator
The orchestrator manages network topology, PNode registration, allocation, and training sessions.
bazel run //orchestrator/cmd/orchestrator
Key environment variables: ORCHESTRATOR_PORT (default 50052) and the DynamoDB table names used for persistence.
See also: Orchestrator · Protocol
2) Start a Physical Node (PNode)
The PNode provides the compute resources and hosts the Virtual Nodes (VNodes).
ORCHESTRATOR_ADDRESS=localhost:50052 PNODE_PORT=50051 \
bazel run //pnode/cmd/pnode
Expected logs:
PNode server listening at :50051Successfully registered with orchestrator
Start a second PNode on another port to see real distribution.
See also: Physical Node (PNode)
3) Submit a Network
A network is a graph of typed VNodes defined in YAML. The repository ships working examples in data/ — from a tiny test network to the production transformer topologies.
Use the dcnr CLI to create the network and drive it:
bazel run //cli/cmd/dcnr -- --help
The CLI covers network creation/inspection, training sessions, dataset and tokenizer management, and live monitoring.
4) Observe Execution
- The orchestrator allocates VNodes to available PNodes, honoring colocation groups and locality.
- PNodes lazily instantiate VNodes and execute forward/training requests; training hops between PNodes are asynchronous.
- Training sessions stream step metrics; the monitoring dashboard shows charts, the live network graph, and per-PNode resources.
5) Observe Fault Tolerance
Stop one of your PNodes while a network is deployed. The orchestrator detects the missing heartbeats and re-allocates its VNodes to the remaining PNodes, which restore state from storage.
6) Next Steps
- Read the Network Definition (YAML) format and the node type catalog.
- Look at the production training networks we train today.
- Check the current Project Status and the Roadmap.