:mod:`fedlab_core.utils.messaging` ================================== .. py:module:: fedlab_core.utils.messaging Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: fedlab_core.utils.messaging.MessageCode Functions ~~~~~~~~~ .. autoapisummary:: fedlab_core.utils.messaging.send_message fedlab_core.utils.messaging.recv_message fedlab_core.utils.messaging.broadcast_message fedlab_core.utils.messaging.recv_broadcast_message .. class:: MessageCode Bases: :class:`enum.Enum` Different types of messages between client and server that we support go here. .. attribute:: ParameterRequest :annotation: = 0 .. attribute:: GradientUpdate :annotation: = 1 .. attribute:: ParameterUpdate :annotation: = 2 .. attribute:: EvaluateParams :annotation: = 3 .. attribute:: Exit :annotation: = 4 .. function:: 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. :param message_code: Type of message, defined in MessageCode :type message_code: MessageCode :param payload: Serialized tensor :param dst: Destination rank. Default is 0 which means the server :type dst: int, optional :returns: Serialized message package, including rank of current process rank, message code, and the payload .. function:: recv_message(payload, src=None) Receives message from source. :param payload: Tensor to fill with received data. The first element is the source rank, and the second element is :param message code.: :param src: Source rank. Will receive from any process if unspecified. :type src: int, optional :returns: Serialized model parameters :raises None: .. function:: 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: .. function:: recv_broadcast_message(recv_buff) Workers recv the message from the center Args: Returns: Raises: