hierarchical#

Package Contents#

ClientConnector

Connect with clients.

ServerConnector

Connect with server.

Scheduler

Middle Topology for hierarchical communication pattern.

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.

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 Scheduler(net_upper, net_lower)#

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)#