Grid

class Grid[source]

Bases : ABC

Classe abstraite de grille pour envoyer/recevoir des messages.

Methods

create_message(content, message_type, ...[, ttl])

Créez un nouveau message avec les paramètres spécifiés.

get_node_ids()

Obtenir les IDs de nœud.

pull_messages(message_ids)

Tirez des messages en fonction des IDs de message.

push_messages(messages)

Envoi de messages vers les IDs de nœuds spécifiés.

send_and_receive(messages, *[, timeout])

Envoi de messages vers les IDs de nœuds spécifiés et récupération des réponses.

set_run(run)

Définissez l'exécution à laquelle cet objet Grid opère.

Attributes

run

Informations d'exécution.

abstract create_message(content: RecordDict, message_type: str, dst_node_id: int, group_id: str, ttl: float | None = None) Message[source]

Créez un nouveau message avec les paramètres spécifiés.

Cette méthode construit un nouveau Message avec le contenu et les métadonnées donnés. Le run_id et le src_node_id seront définis automatiquement.

Paramètres:
  • content (RecordDict) – Le contenu du nouveau message. Cela contient des enregistrements à envoyer au nœud de destination.

  • message_type (str) – Le type de message, définissant l’action à exécuter sur le côté récepteur.

  • dst_node_id (int) – L’ID du nœud de destination vers lequel le message est envoyé.

  • group_id (str) – L’ID du groupe auquel ce message est associé. Dans certains contextes, cela est utilisé comme tour d’apprentissage fédéré.

  • ttl (Optional[float] (default: None)) – Durée de vie pour le trajet aller-retour de ce message, c’est-à-dire la durée entre l’envoi de ce message et la réception d’une réponse. Il spécifie en secondes la durée pendant laquelle le message et sa réponse potentielle sont considérés comme valides. Si non défini, la durée de vie par défaut (c’est-à-dire flwr.app.DEFAULT_TTL) sera utilisée.

Renvoie:

message – Une nouvelle instance Message avec le contenu et les métadonnées spécifiés.

Type renvoyé:

Message

abstract get_node_ids() Iterable[int][source]

Obtenir les IDs de nœud.

abstract pull_messages(message_ids: Iterable[str]) Iterable[Message][source]

Tirez des messages en fonction des IDs de message.

Cette méthode est utilisée pour collecter des messages à partir de SuperLink qui correspondent à un ensemble donné d’IDs de message.

Paramètres:

message_ids (Iterable[str]) – Une itérable d’IDs de message pour lesquels les réponses doivent être récupérées.

Renvoie:

messages – Une itération de messages reçus.

Type renvoyé:

Iterable[Message]

abstract push_messages(messages: Iterable[Message]) Iterable[str][source]

Envoi de messages vers les IDs de nœuds spécifiés.

Cette méthode prend un itérateur de messages et envoie chaque message au nœud spécifié dans dst_node_id.

Paramètres:

messages (Iterable[Message]) – Une itération de messages à envoyer.

Renvoie:

message_ids – Une itération d’IDs pour les messages qui ont été envoyés, qui peuvent être utilisés pour récupérer des réponses.

Type renvoyé:

Iterable[str]

abstract property run: Run

Informations d’exécution.

abstract send_and_receive(messages: Iterable[Message], *, timeout: float | None = None) Iterable[Message][source]

Envoi de messages vers les IDs de nœuds spécifiés et récupération des réponses.

Cette méthode envoie une liste de messages vers leurs IDs de nœud de destination et attend ensuite les réponses. Elle continue à récupérer les réponses jusqu’à ce que soit reçu toutes les réponses ou que la durée de temps spécifiée soit dépassée.

Paramètres:
  • messages (Iterable[Message]) – Une itération de messages à envoyer.

  • timeout (Optional[float] (default: None)) – La durée de temps en secondes. Si spécifié, la méthode attendra les réponses pendant cette durée. Si None, il n’y a pas de limite de temps et la méthode attendra jusqu’à ce que soient reçues toutes les réponses pour tous les messages.

Renvoie:

replies – Une itération de messages de réponse reçus du SuperLink.

Type renvoyé:

Iterable[Message]

Notes

Cette méthode utilise push_messages pour envoyer les messages et pull_messages pour collecter les réponses. Si timeout est défini, la méthode peut ne pas retourner des réponses pour tous les messages envoyés. Un message reste valide jusqu’à son TTL, qui n’est pas affecté par timeout.

abstract set_run(run: Run) None[source]

Définissez l’exécution à laquelle cet objet Grid opère.

Paramètres:

run (Run) – Le Run à l’intérieur duquel cet objet Grid opère.