fiber.experimental.ring
Ring allows you to create a Ring like topology easily on a computer cluster.
RingNode
RingNode(self, rank)
A RingNode
represents a node in the Ring
.
Arguments:
rank
: The id assigned to this node. Each node will be assigned a unique id calledrank
. Rank 0 is the control node of theRing
.Ring
Ring(self, processes, func, initializer, initargs=None)
Create a ring of nodes (processes). Each node runs a copy of the same function.
Arguments:
processes
: Number of ring nodes in this Ring.func
: the target function that each ring node will run.initializer
: the initialization function that each ring node runs. This is used to setup the custom ring structure like PyTorch's torch.distributed, Horovod, etc.initargs
: positional arguments that are passed to initializer. Currently this is not used.run
Ring.run()
Start this Ring. This will start the ring 0 process on the same machine and start all the other ring nodes with Fiber processes.