connector#
Module Contents#
Abstract class for basic Connector, which is a sub-module of |
|
Connect with server. |
|
Connect with clients. |
- class Connector(network, write_queue, read_queue)#
Bases:
fedlab.core.network_manager.NetworkManager
Abstract class for basic Connector, which is a sub-module of
Scheduler
.Connector inherits
NetworkManager
, maintaining two Message Queue. One is for sending messages to collaborator, the other is for read messages from others.Note
Connector is a basic component for scheduler, Example code can be seen in
scheduler.py
.- 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.
- abstract process_meessage_queue(self)#
Define the procedure of dealing with message queue.
- class ServerConnector(network, write_queue, read_queue, logger)#
Bases:
Connector
Connect with server.
this process will act like a client.
This class is a part of middle server which used in hierarchical structure.
- Parameters
network (DistNetwork) – Network configuration and interfaces.
write_queue (torch.multiprocessing.Queue) – Message queue to write.
read_queue (torch.multiprocessing.Queue) – Message queue to read.
logger (Logger, optional) – object of
Logger
.
- run(self)#
Main Process:
Initialization stage.
FL communication stage.
Shutdown stage. Close network connection.
- setup(self, *args, **kwargs)#
Initialize network connection and necessary setups.
At first,
self._network.init_network_connection()
is required to be called.Overwrite this method to implement system setup message communication procedure.
- main_loop(self, *args, **kwargs)#
Define the actions of communication stage.
- process_meessage_queue(self)#
client -> server directly transport.
- class ClientConnector(network, write_queue, read_queue, logger)#
Bases:
Connector
Connect with clients.
This class is a part of middle server which used in hierarchical structure.
- Parameters
network (DistNetwork) – Network configuration and interfaces.
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.
- setup(self, *args, **kwargs)#
Initialize network connection and necessary setups.
At first,
self._network.init_network_connection()
is required to be called.Overwrite this method to implement system setup message communication procedure.
- main_loop(self)#
Define the actions of communication stage.
- process_meessage_queue(self)#
Process message queue
Strategy of processing message from server.