Arcane  v3.16.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::MessagePassing::ISerializeMessageabstract

Interface d'un message de sérialisation entre IMessagePassingMng. Plus de détails...

#include </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/message_passing/arccore/message_passing/ISerializeMessage.h>

+ Graphe d'héritage de Arcane::MessagePassing::ISerializeMessage:
+ Graphe de collaboration de Arcane::MessagePassing::ISerializeMessage:

Types publics

enum  eMessageType { MT_Send , MT_Recv , MT_Broadcast }
 
enum class  eStrategy { Default , OneMessage }
 Stratégie d'envoi/réception. Plus de détails...
 

Fonctions membres publiques

virtual ~ISerializeMessage ()=default
 Libère les ressources.
 
virtual bool isSend () const =0
 true s'il faut envoyer, false s'il faut recevoir
 
virtual eMessageType messageType () const =0
 Type du message.
 
virtual Int32 destRank () const =0
 Rang du destinataire (si isSend() est vrai) ou envoyeur.
 
virtual MessageRank destination () const =0
 Rang du destinataire (si isSend() est vrai) ou de l'envoyeur.
 
virtual Int32 origRank () const =0
 Rang de l'envoyeur du message Voir aussi destRank() pour une interprétation suivant la valeur de isSend()
 
virtual MessageRank source () const =0
 Rang de l'envoyeur du message.
 
virtual ISerializerserializer ()=0
 Sérialiseur.
 
virtual bool finished () const =0
 true si le message est terminé
 
virtual void setFinished (bool v)=0
 Positionne l'état 'fini' du message.
 
virtual void setTag (Int32 tag)=0
 
virtual void setInternalTag (MessageTag tag)=0
 Positionne un tag interne pour le message.
 
virtual Int32 tag () const =0
 Tag interne du message.
 
virtual MessageTag internalTag () const =0
 Tag interne du message.
 
virtual MessageId _internalMessageId () const =0
 Identificant du message.
 
virtual void setStrategy (eStrategy strategy)=0
 Positionne la stratégie d'envoi/réception.
 
virtual eStrategy strategy () const =0
 Stratégie utilisée pour les envois/réceptions.
 
virtual bool isProcessed () const =0
 Indique si le message a déjà été traité.
 

Description détaillée

Interface d'un message de sérialisation entre IMessagePassingMng.

Un message de sérialisation consiste en une série d'octets envoyés d'un rang source() à un rang destination(). Si isSend() est vrai, c'est source() qui envoie à destination(), sinon c'est l'inverse. S'il s'agit d'un message de réception, le serializer() est alloué et remplit automatiquement. Pour que le parallélisme fonctionne correctement, il faut qu'à un message d'envoi corresponde un message de réception complémentaire (envoyé par le rang destination()).

Le message peut-être non bloquant. Un message peut-être détruit lorsque sa propriété finished() est vrai.

Définition à la ligne 44 du fichier arccore/src/message_passing/arccore/message_passing/ISerializeMessage.h.

Documentation des énumérations membres

◆ eMessageType

enum Arcane::MessagePassing::ISerializeMessage::eMessageType

◆ eStrategy

Stratégie d'envoi/réception.

Valeurs énumérées
Default 

Stratégie par défaut.

OneMessage 

Stratégie utilisant un seul message si possible.

Cela suppose d'utiliser la fonction mpProbe() pour connaitre la taille du message avant de poster la réception.

Définition à la ligne 55 du fichier arccore/src/message_passing/arccore/message_passing/ISerializeMessage.h.

Documentation des fonctions membres

◆ _internalMessageId()

virtual MessageId Arcane::MessagePassing::ISerializeMessage::_internalMessageId ( ) const
pure virtual

Identificant du message.

Implémenté dans Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, et Arccore::MessagePassing::Mpi::BasicSerializeMessage.

Références _internalMessageId().

Référencé par _internalMessageId().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ destination()

virtual MessageRank Arcane::MessagePassing::ISerializeMessage::destination ( ) const
pure virtual

Rang du destinataire (si isSend() est vrai) ou de l'envoyeur.

Dans le cas d'une réception, le rang peut valoir nul pour indiquer qu'on souhaite recevoir de n'importe qui. rang en spécifiant A_NULL_RANK.

Implémenté dans Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, et Arccore::MessagePassing::Mpi::BasicSerializeMessage.

Références destination().

Référencé par Arcane::mesh::FaceUniqueIdBuilder::_exchangeData(), Arcane::mesh::Parallel3EdgeUniqueIdBuilder::_exchangeData(), Arcane::ParallelExchanger::_processExchangeWithControl(), Arcane::Parallel::VariableParallelOperationBase::applyOperation(), destination(), Arcane::mesh::ItemsExchangeInfo2::prepareToSend(), Arcane::mesh::ItemsExchangeInfo2::readAndAllocItems(), Arcane::mesh::ItemsExchangeInfo2::readGroups(), et Arcane::mesh::ItemsExchangeInfo2::removeSentItems().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ destRank()

virtual Int32 Arcane::MessagePassing::ISerializeMessage::destRank ( ) const
pure virtual

Rang du destinataire (si isSend() est vrai) ou envoyeur.

Dans le cas d'une réception, il est possible de spécifier n'importe quel rang en spécifiant A_NULL_RANK.

Implémenté dans Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, et Arccore::MessagePassing::Mpi::BasicSerializeMessage.

Références destRank().

Référencé par destRank().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ finished()

virtual bool Arcane::MessagePassing::ISerializeMessage::finished ( ) const
pure virtual

true si le message est terminé

Implémenté dans Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, et Arccore::MessagePassing::Mpi::BasicSerializeMessage.

Références finished().

Référencé par finished().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ internalTag()

virtual MessageTag Arcane::MessagePassing::ISerializeMessage::internalTag ( ) const
pure virtual

Tag interne du message.

Implémenté dans Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, et Arccore::MessagePassing::Mpi::BasicSerializeMessage.

Références internalTag().

Référencé par internalTag().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ isProcessed()

virtual bool Arcane::MessagePassing::ISerializeMessage::isProcessed ( ) const
pure virtual

Indique si le message a déjà été traité.

Si le message a déjà été traité, il n'est pas possible de changer certaines caractéristiques (comme la stratégie ou le tag)

Implémenté dans Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, et Arccore::MessagePassing::Mpi::BasicSerializeMessage.

Références isProcessed().

Référencé par isProcessed().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ isSend()

virtual bool Arcane::MessagePassing::ISerializeMessage::isSend ( ) const
pure virtual

true s'il faut envoyer, false s'il faut recevoir

Implémenté dans Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, et Arccore::MessagePassing::Mpi::BasicSerializeMessage.

Référencé par Arcane::ParallelExchanger::_processExchangeWithControl().

+ Voici le graphe des appelants de cette fonction :

◆ messageType()

virtual eMessageType Arcane::MessagePassing::ISerializeMessage::messageType ( ) const
pure virtual

◆ origRank()

virtual Int32 Arcane::MessagePassing::ISerializeMessage::origRank ( ) const
pure virtual

Rang de l'envoyeur du message Voir aussi destRank() pour une interprétation suivant la valeur de isSend()

Implémenté dans Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, et Arccore::MessagePassing::Mpi::BasicSerializeMessage.

Références origRank().

Référencé par origRank().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ serializer()

virtual ISerializer * Arcane::MessagePassing::ISerializeMessage::serializer ( )
pure virtual

◆ setFinished()

virtual void Arcane::MessagePassing::ISerializeMessage::setFinished ( bool v)
pure virtual

Positionne l'état 'fini' du message.

Implémenté dans Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, et Arccore::MessagePassing::Mpi::BasicSerializeMessage.

Références setFinished().

Référencé par setFinished().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ setInternalTag()

virtual void Arcane::MessagePassing::ISerializeMessage::setInternalTag ( MessageTag tag)
pure virtual

Positionne un tag interne pour le message.

Ce tag est utile s'il faut envoyer/recevoir plusieurs messages à un même couple origin/destination.

Cette méthode est interne à Arccore.

Implémenté dans Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, et Arccore::MessagePassing::Mpi::BasicSerializeMessage.

Références setInternalTag(), et tag().

Référencé par setInternalTag().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ setStrategy()

virtual void Arcane::MessagePassing::ISerializeMessage::setStrategy ( eStrategy strategy)
pure virtual

Positionne la stratégie d'envoi/réception.

La stratégie utilisée doit être la même pour le message envoyé et le message de réception sinon le comportement est indéfini.

Implémenté dans Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, et Arccore::MessagePassing::Mpi::BasicSerializeMessage.

Références setStrategy(), et strategy().

Référencé par setStrategy().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ setTag()

virtual void Arcane::MessagePassing::ISerializeMessage::setTag ( Int32 tag)
pure virtual

Implémenté dans Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, et Arccore::MessagePassing::Mpi::BasicSerializeMessage.

Références setTag(), et tag().

Référencé par setTag().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ source()

virtual MessageRank Arcane::MessagePassing::ISerializeMessage::source ( ) const
pure virtual

Rang de l'envoyeur du message.

Voir aussi destination() pour une interprétation suivant la valeur de isSend()

Implémenté dans Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, et Arccore::MessagePassing::Mpi::BasicSerializeMessage.

Références source().

Référencé par Arcane::ParallelExchanger::_processExchangeWithControl(), et source().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ strategy()

virtual eStrategy Arcane::MessagePassing::ISerializeMessage::strategy ( ) const
pure virtual

Stratégie utilisée pour les envois/réceptions.

Implémenté dans Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, et Arccore::MessagePassing::Mpi::BasicSerializeMessage.

Références strategy().

Référencé par setStrategy(), et strategy().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ tag()

virtual Int32 Arcane::MessagePassing::ISerializeMessage::tag ( ) const
pure virtual

Tag interne du message.

Implémenté dans Arcane::MessagePassing::BasicSerializeMessage, Arcane::MessagePassing::internal::BasicSerializeMessage, Arccore::MessagePassing::internal::BasicSerializeMessage, et Arccore::MessagePassing::Mpi::BasicSerializeMessage.

Références tag().

Référencé par setInternalTag(), setTag(), et tag().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

La documentation de cette classe a été générée à partir du fichier suivant :