connector#
Module Contents#
Abstract class for basic Connector, which is a sub-module of |
|
Connect with server. |
|
Connect with clients. |
- class Connector(network: fedlab.core.network.DistNetwork, write_queue: torch.multiprocessing.Queue, read_queue: torch.multiprocessing.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()#
Define the procedure of dealing with message queue.
- class ServerConnector(network: fedlab.core.network.DistNetwork, write_queue: torch.multiprocessing.Queue, read_queue: torch.multiprocessing.Queue, logger: fedlab.utils.Logger = None)#
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
. Defaults to None.
- run()#
Main Process:
Initialization stage.
FL communication stage.
Shutdown stage. Close network connection.
- setup()#
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()#
Define the actions of communication stage.
- process_meessage_queue()#
client -> server directly transport.
- class ClientConnector(network: fedlab.core.network.DistNetwork, write_queue: torch.multiprocessing.Queue, read_queue: torch.multiprocessing.Queue, logger: fedlab.utils.Logger = None)#
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.
logger (Logger, optional) – object of
Logger
. Defaults to None.
- run()#
Main Process:
Initialization stage.
FL communication stage.
Shutdown stage. Close network connection.
- setup()#
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()#
Define the actions of communication stage.
- process_meessage_queue()#
Process message queue
Strategy of processing message from server.