connector#

Module Contents#

Connector

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

ClientConnector

Connect with clients.

ServerConnector

Connect with server.

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 run(self)#

Main Process:

  1. Initialization stage.

  2. FL communication stage.

  3. Shutdown stage. Close network connection.

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

abstract deal_queue(self)#

Define the procedure of dealing with message queue.

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:

  1. Initialization stage.

  2. FL communication stage.

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

  1. Initialization stage.

  2. FL communication stage.

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