Expand description
CPU collectives among the ranks of an engine: what the control plane’s gloo groups do today, without the GIL.
Every pair of ranks shares one TCP connection. A collective blocks until
it completes, and every member of a group must run the same collectives
on it in the same order: the rank-identical ordering the control plane
keeps anyway (docs/design/event-loop.md). A reader thread per
connection drains the socket into a queue, so a send never waits on the
peer reading; a collective sends this rank’s part to the members that
need it, then takes each part it needs from its sender’s queue.
Each frame names its collective’s kind, group and sequence number on that group, so a member that took another path fails loudly instead of reading another collective’s bytes. A peer that exits fails every collective waiting on it.
Structs§
- Group
- A set of ranks that run collectives together, as one rank sees it.
- Listener
- This rank’s listening socket, bound before the ranks exchange addresses.
- Mesh
- One rank’s connections to every other rank.
- Tag
- Which collective a frame belongs to.