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 |
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 |
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 |
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 |
class | StatData |
Énumérations | |
enum | eReduceType |
Types des réductions supportées. Plus de détails... | |
enum | eWaitType |
Type d'attente. Plus de détails... | |
enum | eBlockingType |
Type indiquant si un message est bloquant ou non. Plus de détails... | |
enum | ePointToPointMessageType |
Type de message point à point. Plus de détails... | |
Fonctions | |
std::ostream & | operator<< (std::ostream &o, const MessageId &pmessage) |
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. | |
C void | mpGather (IMessagePassingMng *pm, Span< const char > send_buf, Span< char > recv_buf, Int32 rank) |
C Request | mpNonBlockingAllGather (IMessagePassingMng *pm, Span< const char > send_buf, Span< char > recv_buf) |
C Request | mpNonBlockingGather (IMessagePassingMng *pm, Span< const char > send_buf, Span< char > recv_buf, Int32 rank) |
C void | mpAllGatherVariable (IMessagePassingMng *pm, Span< const char > send_buf, Array< char > &recv_buf) |
C void | mpGatherVariable (IMessagePassingMng *pm, Span< const char > send_buf, Array< char > &recv_buf, Int32 rank) |
C void | mpGather (IMessagePassingMng *pm, Span< const char > send_buf, Span< char > recv_buf, Int32 rank) |
C void | mpScatterVariable (IMessagePassingMng *pm, Span< const char > send_buf, Span< char > recv_buf, Int32 root) |
C char | mpAllReduce (IMessagePassingMng *pm, eReduceType rt, char v) |
C Request | mpNonBlockingAllReduce (IMessagePassingMng *pm, eReduceType rt, Span< const char > send_buf, Span< char > recv_buf) |
C void | mpBroadcast (IMessagePassingMng *pm, Span< char > send_buf, Int32 rank) |
C Request | mpNonBlockingBroadcast (IMessagePassingMng *pm, Span< char > send_buf, Int32 rank) |
C void | mpAllToAll (IMessagePassingMng *pm, Span< const char > send_buf, Span< char > recv_buf, Int32 count) |
C Request | mpNonBlockingAllToAll (IMessagePassingMng *pm, Span< const char > send_buf, Span< char > recv_buf, Int32 count) |
C void | mpAllToAllVariable (IMessagePassingMng *pm, Span< const char > send_buf, ConstArrayView< Int32 > send_count, ConstArrayView< Int32 > send_index, Span< char > recv_buf, ConstArrayView< Int32 > recv_count, ConstArrayView< Int32 > recv_index) |
C Request | mpNonBlockingAllToAllVariable (IMessagePassingMng *pm, Span< const char > send_buf, ConstArrayView< Int32 > send_count, ConstArrayView< Int32 > send_index, Span< char > recv_buf, ConstArrayView< Int32 > recv_count, ConstArrayView< Int32 > recv_index) |
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. | |
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. | |
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 119 du fichier MessagePassingGlobal.h.
Type de message point à point.
Définition à la ligne 130 du fichier MessagePassingGlobal.h.
Types des réductions supportées.
Définition à la ligne 98 du fichier MessagePassingGlobal.h.
Type d'attente.
Définition à la ligne 108 du fichier MessagePassingGlobal.h.
void Arcane::MessagePassing::mpAllGather | ( | IMessagePassingMng * | pm, |
const ISerializer * | send_serializer, | ||
ISerializer * | receive_serialize ) |
Message allGather() pour une sérialisation.
Définition à la ligne 307 du fichier Messages.cc.
C void Arcane::MessagePassing::mpAllGatherVariable | ( | IMessagePassingMng * | pm, |
Span< const char > | send_buf, | ||
Array< char > & | recv_buf ) |
AllGatherVariable
C char Arcane::MessagePassing::mpAllReduce | ( | IMessagePassingMng * | pm, |
eReduceType | rt, | ||
char | v ) |
AllReduce
C void Arcane::MessagePassing::mpAllToAll | ( | IMessagePassingMng * | pm, |
Span< const char > | send_buf, | ||
Span< char > | recv_buf, | ||
Int32 | count ) |
AllToAll
C void Arcane::MessagePassing::mpAllToAllVariable | ( | IMessagePassingMng * | pm, |
Span< const char > | send_buf, | ||
ConstArrayView< Int32 > | send_count, | ||
ConstArrayView< Int32 > | send_index, | ||
Span< char > | recv_buf, | ||
ConstArrayView< Int32 > | recv_count, | ||
ConstArrayView< Int32 > | recv_index ) |
AllToAllVariable
void Arcane::MessagePassing::mpBarrier | ( | IMessagePassingMng * | pm | ) |
Effectue une barrière.
Bloque tant que tous les rangs n'ont pas atteint cette appel.
Définition à la ligne 247 du fichier Messages.cc.
C void Arcane::MessagePassing::mpBroadcast | ( | IMessagePassingMng * | pm, |
Span< char > | send_buf, | ||
Int32 | rank ) |
Broadcast
Ref< IRequestList > Arcane::MessagePassing::mpCreateRequestListRef | ( | IMessagePassingMng * | pm | ) |
Créé une liste de requêtes.
Définition à la ligne 153 du fichier Messages.cc.
Ref< ISerializeMessageList > Arcane::MessagePassing::mpCreateSerializeMessageListRef | ( | IMessagePassingMng * | pm | ) |
Créé une liste de messages de sérialisation.
Définition à la ligne 267 du fichier Messages.cc.
C void Arcane::MessagePassing::mpGather | ( | IMessagePassingMng * | pm, |
Span< const char > | send_buf, | ||
Span< char > | recv_buf, | ||
Int32 | rank ) |
gather
C void Arcane::MessagePassing::mpGather | ( | IMessagePassingMng * | pm, |
Span< const char > | send_buf, | ||
Span< char > | recv_buf, | ||
Int32 | rank ) |
gather
C void Arcane::MessagePassing::mpGatherVariable | ( | IMessagePassingMng * | pm, |
Span< const char > | send_buf, | ||
Array< char > & | recv_buf, | ||
Int32 | rank ) |
GatherVariable
MessageSourceInfo Arcane::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 228 du fichier Messages.cc.
C Request Arcane::MessagePassing::mpNonBlockingAllGather | ( | IMessagePassingMng * | pm, |
Span< const char > | send_buf, | ||
Span< char > | recv_buf ) |
AllGather non bloquant
C Request Arcane::MessagePassing::mpNonBlockingAllReduce | ( | IMessagePassingMng * | pm, |
eReduceType | rt, | ||
Span< const char > | send_buf, | ||
Span< char > | recv_buf ) |
AllReduce non bloquant
C Request Arcane::MessagePassing::mpNonBlockingAllToAll | ( | IMessagePassingMng * | pm, |
Span< const char > | send_buf, | ||
Span< char > | recv_buf, | ||
Int32 | count ) |
AllToAll non bloquant
C Request Arcane::MessagePassing::mpNonBlockingAllToAllVariable | ( | IMessagePassingMng * | pm, |
Span< const char > | send_buf, | ||
ConstArrayView< Int32 > | send_count, | ||
ConstArrayView< Int32 > | send_index, | ||
Span< char > | recv_buf, | ||
ConstArrayView< Int32 > | recv_count, | ||
ConstArrayView< Int32 > | recv_index ) |
AllToAllVariable non bloquant
Request Arcane::MessagePassing::mpNonBlockingBarrier | ( | IMessagePassingMng * | pm | ) |
Effectue une barrière non bloquante.
Définition à la ligne 257 du fichier Messages.cc.
C Request Arcane::MessagePassing::mpNonBlockingBroadcast | ( | IMessagePassingMng * | pm, |
Span< char > | send_buf, | ||
Int32 | rank ) |
Broadcast non bloquant
C Request Arcane::MessagePassing::mpNonBlockingGather | ( | IMessagePassingMng * | pm, |
Span< const char > | send_buf, | ||
Span< char > | recv_buf, | ||
Int32 | rank ) |
Gather non bloquant
MessageId Arcane::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 218 du fichier Messages.cc.
Request Arcane::MessagePassing::mpReceive | ( | IMessagePassingMng * | pm, |
ISerializer * | values, | ||
const PointToPointMessageInfo & | message ) |
Message de réception utilisant un ISerializer.
Définition à la ligne 288 du fichier Messages.cc.
C void Arcane::MessagePassing::mpScatterVariable | ( | IMessagePassingMng * | pm, |
Span< const char > | send_buf, | ||
Span< char > | recv_buf, | ||
Int32 | root ) |
ScatterVariable
Request Arcane::MessagePassing::mpSend | ( | IMessagePassingMng * | pm, |
const ISerializer * | values, | ||
const PointToPointMessageInfo & | message ) |
Message d'envoi utilisant un ISerializer.
Définition à la ligne 277 du fichier Messages.cc.
IMessagePassingMng * Arcane::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 238 du fichier Messages.cc.
void Arcane::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 188 du fichier Messages.cc.
void Arcane::MessagePassing::mpWait | ( | IMessagePassingMng * | pm, |
Request | request ) |
Bloque jusqu'à ce que la requête request soit terminée.
Définition à la ligne 171 du fichier Messages.cc.
void Arcane::MessagePassing::mpWaitAll | ( | IMessagePassingMng * | pm, |
ArrayView< Request > | requests ) |
Bloque tant que les requêtes de requests ne sont pas terminées.
Définition à la ligne 162 du fichier Messages.cc.
void Arcane::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 179 du fichier Messages.cc.
|
inline |
Définition à la ligne 159 du fichier SendReceiveInfo.h.