JACCL TCPAllGather side channel as peer-liveness channel
Parent: Mac local LLMs: Clusters, RDMA, exo and ds4 · Published reference · snapshot 2026-10-05
↓ Facts as markdownall context files
In stock MLX main the side channel is used for bootstrap all-gathers and a barrier in the ring constructor; the RDMA completion wait loops never read it
These notes link each claim to its source. A source may be a research report hosted on this site rather than the primary document. A published reference means the content is available; it does not certify independent review or accuracy.Read the editorial policy and follow the sources before relying on a claim.
Facts
- In stock MLX main the side channel is used for bootstrap all-gathers and a barrier in the ring constructor; the RDMA completion wait loops never read it [source]
- `RingGroup::initialize` exchanges left and right connection info with two side-channel all-gathers, which its comment says also act as a barrier before RTR and RTS [source]
- `RingGroup::barrier` is an `all_sum` of one `uint8_t` over RDMA, not a TCP barrier [source]
- `MeshGroup::barrier` is also an `all_sum` of one `uint8_t` [source]
- `Config::get_side_channel` keeps the `TCPAllGather` alive in a lambda capture for the group's lifetime, so the socket stays open after init [source]
- A user-supplied factory or all-gather function replaces the TCP channel entirely, so there is no socket to watch for liveness [source]
Children
- No children recorded.