hierarchical#
Package Contents#
Connect with clients. |
|
Connect with server. |
|
Middle Topology for hierarchical communication pattern |
- class ClientConnector(network, write_queue, read_queue)#
Bases:
Connector
Connect with clients.
This class is a part of middle server which used in hierarchical structure.
- Parameters
network (DistNetwork) – Manage
torch.distributed
network communication.write_queue (torch.multiprocessing.Queue) – Message queue to write.
read_queue (torch.multiprocessing.Queue) – Message queue to read.
- run(self)#
Main Process:
Initialization stage.
FL communication stage.
Shutdown stage. Close network connection.
- on_receive(self, sender, message_code, payload)#
Define the reaction of receiving message.
- Parameters
sender (int) – rank of sender in dist group.
message_code (MessageCode) – Message code.
payload (list(torch.Tensor)) – A list of tensors received from other process.
- deal_queue(self)#
Process message queue
Strategy of processing message from server.
- class ServerConnector(network, write_queue, read_queue)#
Bases:
Connector
Connect with server.
This class is a part of middle server which used in hierarchical structure.
- Parameters
network (DistNetwork) – object to manage torch.distributed network communication.
write_queue (torch.multiprocessing.Queue) – message queue
read_queue (torch.multiprocessing.Queue) – message queue
- run(self)#
Main Process:
Initialization stage.
FL communication stage.
Shutdown stage. Close network connection.
- on_receive(self, sender, message_code, payload)#
Define the reaction of receiving message.
- Parameters
sender (int) – rank of sender in dist group.
message_code (MessageCode) – Message code.
payload (list(torch.Tensor)) – A list of tensors received from other process.
- deal_queue(self)#
Define the procedure of dealing with message queue.
- class Scheduler(net_upper, net_lower)#
Bases:
torch.multiprocessing.Process
Middle Topology for hierarchical communication pattern
Scheduler uses message queues to decouple connector modules
- Parameters
net_upper (DistNetwork) – Distributed network manager of server from upper level.
net_lower (DistNetwork) – Distributed network manager of clients from lower level.
- run(self)#