connector#

Module Contents#

Connector

Abstract class for basic Connector, which is a sub-module of Scheduler.

ServerConnector

Connect with server.

ClientConnector

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:

  1. Initialization stage.

  2. FL communication stage.

  3. 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:

  1. Initialization stage.

  2. FL communication stage.

  3. 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.