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< IRequestList > | mpCreateRequestListRef (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. | |
IMessagePassingMng * | mpSplit (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< ISerializeMessageList > | mpCreateSerializeMessageListRef (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. | |
Espace de nommage contenant les types et déclarations qui gèrent le mécanisme de parallélisme par échange de message.
Type indiquant si un message est bloquant ou non.
Définition à la ligne 108 du fichier MessagePassingGlobal.h.
Type de message point à point.
Définition à la ligne 119 du fichier MessagePassingGlobal.h.
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.
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.
|
Définition à la ligne 97 du fichier MessagePassingGlobal.h.
ARCCORE_MESSAGEPASSING_EXPORT void _internalThrowNotImplementedTypeDispatcher Arccore::MessagePassing::ARCCORE_NORETURN | ( | ) |
Définition à la ligne 54 du fichier Dispatchers.cc.
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().
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().
ARCCORE_MESSAGEPASSING_EXPORT Ref< IRequestList > Arccore::MessagePassing::mpCreateRequestListRef | ( | IMessagePassingMng * | pm | ) |
Créé une liste de requêtes.
Définition à la ligne 142 du fichier Messages.cc.
Références Arcane::IParallelMng::createRequestListRef().
ARCCORE_MESSAGEPASSING_EXPORT Ref< ISerializeMessageList > Arccore::MessagePassing::mpCreateSerializeMessageListRef | ( | IMessagePassingMng * | pm | ) |
Créé une liste de messages de sérialisation.
Définition à la ligne 256 du fichier Messages.cc.
Références Arcane::IParallelMng::createSerializeMessageListRef().
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.
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().
ARCCORE_MESSAGEPASSING_EXPORT Request Arccore::MessagePassing::mpNonBlockingBarrier | ( | IMessagePassingMng * | pm | ) |
Effectue une barrière non bloquante.
Définition à la ligne 246 du fichier Messages.cc.
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().
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.
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.
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.
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().
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.
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().
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().
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().
|
inline |
Définition à la ligne 169 du fichier MessageId.h.