fedlab_core.utils.messaging

Module Contents

Classes

MessageCode

Different types of messages between client and server that we support go here.

Functions

send_message(message_code, payload, dst=0)

Sends a message to destination.

recv_message(payload, src=None)

Receives message from source.

broadcast_message(message_code, payload)

Broadcast a message to all workers.

recv_broadcast_message(recv_buff)

Workers recv the message from the center

class fedlab_core.utils.messaging.MessageCode

Bases: enum.Enum

Different types of messages between client and server that we support go here.

ParameterRequest = 0
GradientUpdate = 1
ParameterUpdate = 2
EvaluateParams = 3
Exit = 4
fedlab_core.utils.messaging.send_message(message_code, payload, dst=0)

Sends a message to destination.

Concatenates destination rank, message code and payload into a single tensor, then sends it.

Parameters
  • message_code (MessageCode) – Type of message, defined in MessageCode

  • payload – Serialized tensor

  • dst (int, optional) – Destination rank. Default is 0 which means the server

Returns

Serialized message package, including rank of current process rank, message code, and the payload

fedlab_core.utils.messaging.recv_message(payload, src=None)

Receives message from source.

Parameters
  • payload – Tensor to fill with received data. The first element is the source rank, and the second element is

  • code. (message) –

  • src (int, optional) – Source rank. Will receive from any process if unspecified.

Returns

Serialized model parameters

Raises

None

fedlab_core.utils.messaging.broadcast_message(message_code, payload)

Broadcast a message to all workers.

Concatenates destination rank, message code and payload into a single tensor, then broadcasts the tensor to the whole group.

Args:

Returns:

Raises:

fedlab_core.utils.messaging.recv_broadcast_message(recv_buff)

Workers recv the message from the center

Args:

Returns:

Raises: