Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de l'espace de nommage Arccore::MessagePassing

Espace de nommage contenant les types et déclarations qui gèrent le mécanisme de parallélisme par échange de message. Plus de détails...

Classes

class  Communicator
 Communicateur pour l'échange de message. Plus de détails...
 
class  Dispatchers
 Interface du conteneur des dispatchers. Plus de détails...
 
class  GatherMessageInfo
 Informations pour un message 'gather' pour le type de données DataType. Plus de détails...
 
class  GatherMessageInfoBase
 Informations pour un message 'gather'. Plus de détails...
 
class  IControlDispatcher
 Manage control streams for parallel messages. Plus de détails...
 
class  IDispatchers
 Interface du conteneur des dispatchers. Plus de détails...
 
class  IMessagePassingMng
 Interface du gestionnaire des échanges de messages. Plus de détails...
 
class  IProfiler
 Interface d'un profiler pour les échanges de messages. Plus de détails...
 
class  IRequestCreator
 Interface d'un créateur de requête. Plus de détails...
 
class  IRequestList
 Liste de requête de messages. Plus de détails...
 
class  ISerializeDispatcher
 Interface des messages de sérialisation. Plus de détails...
 
class  ISerializeMessage
 Interface d'un message de sérialisation entre IMessagePassingMng. Plus de détails...
 
class  ISerializeMessageList
 Interface d'une liste de messages de sérialisation. Plus de détails...
 
class  IStat
 Statistiques sur le parallélisme. Plus de détails...
 
class  ISubRequest
 Sous-requête d'une requête. Plus de détails...
 
class  ITypeDispatcher
 Gestion des messages parallèles pour le type Type. Plus de détails...
 
class  MessageId
 MessageId. Plus de détails...
 
class  MessagePassingMng
 Gestionnaire des échanges de messages. Plus de détails...
 
class  MessageRank
 Rang d'un message. Plus de détails...
 
class  MessageSourceInfo
 Informations sur la source d'un message. Plus de détails...
 
class  MessageTag
 Tag d'un message. Plus de détails...
 
class  OneStat
 Statistique sur un message. Plus de détails...
 
class  PointToPointMessageInfo
 Informations pour envoyer/recevoir un message point à point. Plus de détails...
 
class  PointToPointSerializerMng
 Communications point à point par des 'ISerializer'. Plus de détails...
 
class  Request
 Requête d'un message. Plus de détails...
 
class  Stat
 Gestionnaire de statistiques sur le parallélisme. Plus de détails...
 
class  StatCollection
 Liste de statistiques. Plus de détails...
 
class  StatData
 Ensemble de données statistiques pour le profiling. Plus de détails...
 
class  SubRequestCompletionInfo
 Informations de complètion d'une sous-requête. Plus de détails...
 

Énumérations

enum  eReduceType { ReduceMin , ReduceMax , ReduceSum }
 Types des réductions supportées. Plus de détails...
 
enum  eWaitType { WaitAll = 0 , WaitSome = 1 , TestSome = 2 , WaitSomeNonBlocking = 2 }
 Type d'attente. Plus de détails...
 
enum  eBlockingType { Blocking = 0 , NonBlocking }
 Type indiquant si un message est bloquant ou non. Plus de détails...
 
enum  ePointToPointMessageType { MsgSend = 0 , MsgReceive }
 Type de message point à point. Plus de détails...
 

Fonctions

ARCCORE_MESSAGEPASSING_EXPORT void _internalThrowNotImplementedTypeDispatcher ARCCORE_NORETURN ()
 
void ARCCORE_MESSAGEPASSING_EXPORT mpDelete (IMessagePassingMng *p)
 Détruit l'instance p.
 
std::ostream & operator<< (std::ostream &o, const MessageId &pmessage)
 
Ref< IRequestListmpCreateRequestListRef (IMessagePassingMng *pm)
 Créé une liste de requêtes.
 
void mpWaitAll (IMessagePassingMng *pm, ArrayView< Request > requests)
 Bloque tant que les requêtes de requests ne sont pas terminées.
 
void mpWait (IMessagePassingMng *pm, Request request)
 Bloque jusqu'à ce que la requête request soit terminée.
 
void mpWaitSome (IMessagePassingMng *pm, ArrayView< Request > requests, ArrayView< bool > indexes)
 Bloque jusqu'à ce qu'au moins une des requêtes de request soit terminée.
 
void mpTestSome (IMessagePassingMng *pm, ArrayView< Request > requests, ArrayView< bool > indexes)
 Teste si des requêtes de request sont terminées.
 
void mpWait (IMessagePassingMng *pm, ArrayView< Request > requests, ArrayView< bool > indexes, eWaitType wait_type)
 Fonction générale d'attente de terminaison de requête.
 
MessageId mpProbe (IMessagePassingMng *pm, const PointToPointMessageInfo &message)
 Teste si un message est disponible.
 
MessageSourceInfo mpLegacyProbe (IMessagePassingMng *pm, const PointToPointMessageInfo &message)
 Teste si un message est disponible.
 
IMessagePassingMngmpSplit (IMessagePassingMng *pm, bool keep)
 Créé une nouvelle instance de IMessagePassingMng.
 
void mpBarrier (IMessagePassingMng *pm)
 Effectue une barrière.
 
Request mpNonBlockingBarrier (IMessagePassingMng *pm)
 Effectue une barrière non bloquante.
 
Ref< ISerializeMessageListmpCreateSerializeMessageListRef (IMessagePassingMng *pm)
 Créé une liste de messages de sérialisation.
 
Request mpSend (IMessagePassingMng *pm, const ISerializer *values, const PointToPointMessageInfo &message)
 Message d'envoi utilisant un ISerializer.
 
Request mpReceive (IMessagePassingMng *pm, ISerializer *values, const PointToPointMessageInfo &message)
 Message de réception utilisant un ISerializer.
 
void mpAllGather (IMessagePassingMng *pm, const ISerializer *send_serializer, ISerializer *recv_serializer)
 Message allGather() pour une sérialisation.
 

Description détaillée

Espace de nommage contenant les types et déclarations qui gèrent le mécanisme de parallélisme par échange de message.

Documentation du type de l'énumération

◆ eBlockingType

Type indiquant si un message est bloquant ou non.

Définition à la ligne 108 du fichier MessagePassingGlobal.h.

◆ ePointToPointMessageType

Type de message point à point.

Définition à la ligne 119 du fichier MessagePassingGlobal.h.

◆ eReduceType

Types des réductions supportées.

Valeurs énumérées
ReduceMin 

Minimum des valeurs.

ReduceMax 

Maximum des valeurs.

ReduceSum 

Somme des valeurs.

Définition à la ligne 87 du fichier MessagePassingGlobal.h.

◆ eWaitType

Type d'attente.

Valeurs énumérées
WaitSome 

Attend que tous les messages de la liste soient traités.

TestSome 

Attend que au moins un message de la liste soit traité

WaitSomeNonBlocking 

Traite uniquement les messages qui peuvent l'être sans attendre.

Obsolète:
Utiliser TestSome à la place

Définition à la ligne 97 du fichier MessagePassingGlobal.h.

Documentation des fonctions

◆ ARCCORE_NORETURN()

ARCCORE_MESSAGEPASSING_EXPORT void _internalThrowNotImplementedTypeDispatcher Arccore::MessagePassing::ARCCORE_NORETURN ( )

Définition à la ligne 54 du fichier Dispatchers.cc.

◆ mpAllGather()

ARCCORE_MESSAGEPASSING_EXPORT void Arccore::MessagePassing::mpAllGather ( IMessagePassingMng pm,
const ISerializer send_serializer,
ISerializer receive_serialize 
)

Message allGather() pour une sérialisation.

Définition à la ligne 296 du fichier Messages.cc.

Référencé par Arcane::ParallelMngDispatcher::allGather().

◆ mpBarrier()

ARCCORE_MESSAGEPASSING_EXPORT void Arccore::MessagePassing::mpBarrier ( IMessagePassingMng pm)

Effectue une barrière.

Bloque tant que tous les rangs n'ont pas atteint cette appel.

Définition à la ligne 236 du fichier Messages.cc.

Références Arcane::IParallelMng::barrier().

◆ mpCreateRequestListRef()

ARCCORE_MESSAGEPASSING_EXPORT Ref< IRequestList > Arccore::MessagePassing::mpCreateRequestListRef ( IMessagePassingMng pm)

Créé une liste de requêtes.

Voir également
IRequestList

Définition à la ligne 142 du fichier Messages.cc.

Références Arcane::IParallelMng::createRequestListRef().

◆ mpCreateSerializeMessageListRef()

ARCCORE_MESSAGEPASSING_EXPORT Ref< ISerializeMessageList > Arccore::MessagePassing::mpCreateSerializeMessageListRef ( IMessagePassingMng pm)

Créé une liste de messages de sérialisation.

Voir également
ISerializeMessageList

Définition à la ligne 256 du fichier Messages.cc.

Références Arcane::IParallelMng::createSerializeMessageListRef().

◆ mpDelete()

void ARCCORE_MESSAGEPASSING_EXPORT Arccore::MessagePassing::mpDelete ( IMessagePassingMng p)

Détruit l'instance p.

L'instance p ne doit plus être utilisée après cet appel

Définition à la ligne 81 du fichier MessagePassingMng.cc.

◆ mpLegacyProbe()

ARCCORE_MESSAGEPASSING_EXPORT MessageSourceInfo Arccore::MessagePassing::mpLegacyProbe ( IMessagePassingMng pm,
const PointToPointMessageInfo message 
)

Teste si un message est disponible.

Cette fonction permet de savoir si un message issu du couple (rang,tag) est disponible. message doit avoir été initialisé avec un couple (rang,tag) (message.isRankTag() doit être vrai).

Retourne une instance de MessageSourceInfo. En mode non bloquant, si aucun message n'est disponible, alors MessageSourceInfo::isValid() vaut false pour l'instance retournée.

La sémantique est identique à celle de MPI_Probe. Il est donc possible si on appelle plusieurs fois cette fonction de retourner le même message. Il n'est pas garanti non plus si on fait un mpReceive() avec l'instance retournée d'avoir le même message. Pour toutes ces raisons il est préférable d'utiliser la fonction mpProbe().

Définition à la ligne 217 du fichier Messages.cc.

Références Arcane::IParallelMng::legacyProbe().

◆ mpNonBlockingBarrier()

ARCCORE_MESSAGEPASSING_EXPORT Request Arccore::MessagePassing::mpNonBlockingBarrier ( IMessagePassingMng pm)

Effectue une barrière non bloquante.

Définition à la ligne 246 du fichier Messages.cc.

◆ mpProbe()

ARCCORE_MESSAGEPASSING_EXPORT MessageId Arccore::MessagePassing::mpProbe ( IMessagePassingMng pm,
const PointToPointMessageInfo message 
)

Teste si un message est disponible.

Cette fonction permet de savoir si un message issu du couple (rang,tag) est disponible. message doit avoir été initialisé avec un couple (rang,tag) (message.isRankTag() doit être vrai).

Retourne une instance de MessageId.

En mode non bloquant, si aucun message n'est disponible, alors MessageId::isValid() vaut false pour l'instance retournée.

La sémantique est identique à celle de MPI_Mprobe. Le message retourné est enlevé de la liste des messages et donc un appel ultérieur à cette méthode avec les mêmes paramètres retournera un autre message ou un message nul. Si on souhaite un comportement identique à MPI_Iprobe()/MPI_Probe() alors il faut utiliser mpLegacyProbe().

Définition à la ligne 207 du fichier Messages.cc.

Références Arcane::IParallelMng::probe().

◆ mpReceive()

ARCCORE_MESSAGEPASSING_EXPORT Request Arccore::MessagePassing::mpReceive ( IMessagePassingMng pm,
ISerializer values,
const PointToPointMessageInfo message 
)

Message de réception utilisant un ISerializer.

Définition à la ligne 277 du fichier Messages.cc.

◆ mpSend()

ARCCORE_MESSAGEPASSING_EXPORT Request Arccore::MessagePassing::mpSend ( IMessagePassingMng pm,
const ISerializer values,
const PointToPointMessageInfo message 
)

Message d'envoi utilisant un ISerializer.

Définition à la ligne 266 du fichier Messages.cc.

◆ mpSplit()

ARCCORE_MESSAGEPASSING_EXPORT IMessagePassingMng * Arccore::MessagePassing::mpSplit ( IMessagePassingMng pm,
bool  keep 
)

Créé une nouvelle instance de IMessagePassingMng.

keep est vrai si ce rang est présent dans le nouveau communicateur.

L'instance retournée doit être détruite par l'appel à l'opérateur operator delele().

Définition à la ligne 227 du fichier Messages.cc.

◆ mpTestSome()

ARCCORE_MESSAGEPASSING_EXPORT void Arccore::MessagePassing::mpTestSome ( IMessagePassingMng pm,
ArrayView< Request requests,
ArrayView< bool >  indexes 
)

Teste si des requêtes de request sont terminées.

En retour, le tableaux indexes contient la valeur true pour indiquer qu'une requête est terminée.

Définition à la ligne 177 du fichier Messages.cc.

Références Arcane::IParallelMng::waitSomeRequests().

Référencé par mpWait().

◆ mpWait() [1/2]

ARCCORE_MESSAGEPASSING_EXPORT void Arccore::MessagePassing::mpWait ( IMessagePassingMng pm,
ArrayView< Request requests,
ArrayView< bool >  indexes,
eWaitType  wait_type 
)

Fonction générale d'attente de terminaison de requête.

En fonction de la valeur de wait_type, appelle mpWait(), mpWaitSome(), ou mpTestSome().

Définition à la ligne 186 du fichier Messages.cc.

Références Arccore::ArrayView< T >::fill(), mpTestSome(), mpWaitAll(), mpWaitSome(), WaitSome, et WaitSomeNonBlocking.

◆ mpWait() [2/2]

ARCCORE_MESSAGEPASSING_EXPORT void Arccore::MessagePassing::mpWait ( IMessagePassingMng pm,
Request  request 
)

Bloque jusqu'à ce que la requête request soit terminée.

Définition à la ligne 160 du fichier Messages.cc.

Références mpWaitAll().

◆ mpWaitAll()

ARCCORE_MESSAGEPASSING_EXPORT void Arccore::MessagePassing::mpWaitAll ( IMessagePassingMng pm,
ArrayView< Request requests 
)

Bloque tant que les requêtes de requests ne sont pas terminées.

Définition à la ligne 151 du fichier Messages.cc.

Références Arcane::IParallelMng::waitAllRequests().

Référencé par mpWait(), et mpWait().

◆ mpWaitSome()

ARCCORE_MESSAGEPASSING_EXPORT void Arccore::MessagePassing::mpWaitSome ( IMessagePassingMng pm,
ArrayView< Request requests,
ArrayView< bool >  indexes 
)

Bloque jusqu'à ce qu'au moins une des requêtes de request soit terminée.

En retour, le tableaux indexes contient la valeur true pour indiquer qu'une requête est terminée.

Définition à la ligne 168 du fichier Messages.cc.

Références Arcane::IParallelMng::waitSomeRequests().

Référencé par mpWait().

◆ operator<<()

std::ostream & Arccore::MessagePassing::operator<< ( std::ostream &  o,
const MessageId pmessage 
)
inline

Définition à la ligne 169 du fichier MessageId.h.