The math of training together.
A collective-communication layer for MLX distributed experiments: one CCL interface, several backends, and the DiLoCo-style outer loop that decides which contributions a shared training run accepts.
Experimental, in the README's own word. The TCP collectives are loopback-validated; true WAN and multi-host transport is deferred, and no production-transport readiness is claimed. Source private today, available for review on request.
What it does- Collectives over TCP — AllReduce, ReduceScatter, AllGather, Broadcast, and Barrier, validated cross-process over loopback with hardware paths gated behind explicit flags.
- DiLoCo outer loop — a Nesterov outer optimizer with versioned submission, minimum quorum, an adaptive grace window, and contribution-weighted merge.
- Robust aggregation — Krum, Bulyan, and coordinate-median gates in the outer layer, so a bad contribution is rejected by math rather than by trust.
- Offline planning — the
magicalplanner maps topology snapshots onto local collective islands without opening sockets or probing hardware in its default path. - Backend seams — in-process, LAN and WAN TCP, an Apple RDMA adapter, and manually gated hooks for vendor libraries, all behind one interface.
mlx-go-ccl is the algorithmic half of the distributed-training work surfaced as mlx-mesh: the mesh moves verified bytes over mlx-go-iroh, and ccl defines what those bytes mean to a training run — the outer-loop schedule, the quorum, and the aggregation gates that keep one bad peer from steering the model. The federated-distillation rounds in mlx-go-fedistill compose its outer aggregation directly. The README keeps a precise list of what is deferred, and the page inherits it: loopback-proven, field demo pending.
source private repo, available for review on request — travis@tmc.dev
docs in progress
contact travis@tmc.dev