Echange d'informations entre processeurs. Plus de détails...
#include <arcane/impl/ParallelExchanger.h>
Fonctions membres publiques | |
ParallelExchanger (IParallelMng *pm) | |
bool | initializeCommunicationsMessages () override |
Calcule les communications. | |
void | initializeCommunicationsMessages (Int32ConstArrayView recv_ranks) override |
Calcule les communications. | |
void | processExchange () override |
Effectue l'échange avec les options par défaut de ParallelExchangerOptions. | |
void | processExchange (const ParallelExchangerOptions &options) override |
Effectue l'échange avec les options options. | |
IParallelMng * | parallelMng () const override |
Integer | nbSender () const override |
Nombre de processeurs auquel on envoie. | |
Int32ConstArrayView | senderRanks () const override |
Liste des rangs des processeurs auquel on envoie. | |
void | addSender (Int32 rank) override |
Ajoute un processeur à envoyer. | |
ISerializeMessage * | messageToSend (Integer i) override |
Message destiné au ième processeur. | |
Integer | nbReceiver () const override |
Nombre de processeurs dont on va réceptionner les messages. | |
Int32ConstArrayView | receiverRanks () override |
Liste des rangs des processeurs dont on va réceptionner les messages. | |
ISerializeMessage * | messageToReceive (Integer i) override |
Message reçu du ième processeur. | |
void | setExchangeMode (eExchangeMode mode) override |
Positionne le mode d'échange. | |
eExchangeMode | exchangeMode () const override |
Mode d'échange spécifié | |
void | setVerbosityLevel (Int32 v) override |
Positionne le niveau de verbosité | |
Int32 | verbosityLevel () const override |
Niveau de verbosité | |
void | setName (const String &name) override |
Positionne le nom de l'instance. Ce nom est utilisé lors des impressions. | |
String | name () const override |
Nom de l'instance. | |
Fonctions membres publiques hérités de Arccore::TraceAccessor | |
TraceAccessor (ITraceMng *m) | |
Construit un accesseur via le gestionnaire de trace m. | |
TraceAccessor (const TraceAccessor &rhs) | |
Constructeur par recopie. | |
TraceAccessor & | operator= (const TraceAccessor &rhs) |
Opérateur de recopie. | |
virtual | ~TraceAccessor () |
Libère les ressources. | |
ITraceMng * | traceMng () const |
Gestionnaire de trace. | |
TraceMessage | info () const |
Flot pour un message d'information. | |
TraceMessage | pinfo () const |
Flot pour un message d'information en parallèle. | |
TraceMessage | info (char category) const |
Flot pour un message d'information d'une catégorie donnée. | |
TraceMessage | pinfo (char category) const |
Flot pour un message d'information parallèle d'une catégorie donnée. | |
TraceMessage | info (bool v) const |
Flot pour un message d'information. | |
TraceMessage | warning () const |
Flot pour un message d'avertissement. | |
TraceMessage | pwarning () const |
TraceMessage | error () const |
Flot pour un message d'erreur. | |
TraceMessage | perror () const |
TraceMessage | log () const |
Flot pour un message de log. | |
TraceMessage | plog () const |
Flot pour un message de log. | |
TraceMessage | logdate () const |
Flot pour un message de log précédé de la date. | |
TraceMessage | fatal () const |
Flot pour un message d'erreur fatale. | |
TraceMessage | pfatal () const |
Flot pour un message d'erreur fatale en parallèle. | |
TraceMessageDbg | debug (Trace::eDebugLevel=Trace::Medium) const |
Flot pour un message de debug. | |
Trace::eDebugLevel | configDbgLevel () const |
Niveau debug du fichier de configuration. | |
TraceMessage | info (Int32 verbose_level) const |
Flot pour un message d'information d'un niveau donné | |
TraceMessage | linfo () const |
Flot pour un message d'information avec le niveau d'information local à cette instance. | |
TraceMessage | linfo (Int32 relative_level) const |
Flot pour un message d'information avec le niveau d'information local à cette instance. | |
void | fatalMessage (const StandaloneTraceMessage &o) const |
Fonctions membres privées | |
ParallelExchanger (Ref< IParallelMng > pm) | |
void | _initializeCommunicationsMessages () |
void | _processExchangeCollective () |
void | _processExchangeWithControl (Int32 max_pending_message) |
Echange avec contrôle du nombre maximum de messages en vol. | |
void | _processExchange (const ParallelExchangerOptions &options) |
Attributs privés | |
Ref< IParallelMng > | m_parallel_mng |
Int32UniqueArray | m_send_ranks |
Liste des sous-domaines à envoyer. | |
Int32UniqueArray | m_recv_ranks |
Liste des sous-domaines à recevoir. | |
UniqueArray< ISerializeMessage * > | m_comms_buf |
Liste des message à envoyer et recevoir. | |
UniqueArray< SerializeMessage * > | m_recv_serialize_infos |
Liste des message à recevoir. | |
UniqueArray< SerializeMessage * > | m_send_serialize_infos |
Liste des message à recevoir. | |
SerializeMessage * | m_own_send_message = nullptr |
Message envoyé à soi-même. | |
SerializeMessage * | m_own_recv_message = nullptr |
Message reçu par soi-même. | |
eExchangeMode | m_exchange_mode = EM_Independant |
Mode d'échange. | |
Int32 | m_verbosity_level = 0 |
Niveau de verbosité | |
String | m_name |
Nom de l'instance utilisé pour l'affichage. | |
Timer | m_timer |
Timer pour mesurer le temps passé dans les échanges. | |
Amis | |
Ref< IParallelExchanger > | createParallelExchangerImpl (Ref< IParallelMng > pm) |
Membres hérités additionnels | |
Types publics hérités de Arcane::IParallelExchanger | |
enum | eExchangeMode { EM_Independant = ParallelExchangerOptions::EM_Independant , EM_Collective = ParallelExchangerOptions::EM_Collective , EM_Auto = ParallelExchangerOptions::EM_Auto } |
Fonctions membres protégées hérités de Arccore::TraceAccessor | |
void | _setLocalVerboseLevel (Int32 v) |
Int32 | _localVerboseLevel () const |
Echange d'informations entre processeurs.
Définition à la ligne 43 du fichier ParallelExchanger.h.
Arcane::ParallelExchanger::ParallelExchanger | ( | IParallelMng * | pm | ) |
Définition à la ligne 38 du fichier ParallelExchanger.cc.
|
override |
Définition à la ligne 61 du fichier ParallelExchanger.cc.
|
private |
Définition à la ligne 47 du fichier ParallelExchanger.cc.
|
private |
Définition à la ligne 137 du fichier ParallelExchanger.cc.
|
private |
Définition à la ligne 197 du fichier ParallelExchanger.cc.
|
private |
Définition à la ligne 253 du fichier ParallelExchanger.cc.
|
private |
Echange avec contrôle du nombre maximum de messages en vol.
Définition à la ligne 429 du fichier ParallelExchanger.cc.
Références Arccore::MessagePassing::ISerializeMessage::destination(), Arccore::MessagePassing::ISerializeMessage::isSend(), et Arccore::MessagePassing::ISerializeMessage::source().
|
inlineoverridevirtual |
Ajoute un processeur à envoyer.
Implémente Arcane::IParallelExchanger.
Définition à la ligne 71 du fichier ParallelExchanger.h.
|
inlineoverridevirtual |
Mode d'échange spécifié
Implémente Arcane::IParallelExchanger.
Définition à la ligne 78 du fichier ParallelExchanger.h.
|
overridevirtual |
Calcule les communications.
A partir de m_send_ranks donné par chaque processeur, détermine la liste des processeurs à qui on doit envoyer un message.
Afin de connaître les processeurs desquels on attend des informations, il est nécessaire de faire une communication (allGatherVariable()). Si on connait à priori ces processeurs, il faut utiliser une des versions surchargée de cette méthode.
true | s'il n'y a rien à échanger |
false | sinon. |
Implémente Arcane::IParallelExchanger.
Définition à la ligne 83 du fichier ParallelExchanger.cc.
|
overridevirtual |
Calcule les communications.
Suppose que la liste des processeurs dont on veut les informations est dans recv_ranks.
Implémente Arcane::IParallelExchanger.
Définition à la ligne 126 du fichier ParallelExchanger.cc.
|
overridevirtual |
Message reçu du ième processeur.
Implémente Arcane::IParallelExchanger.
Définition à la ligne 364 du fichier ParallelExchanger.cc.
|
overridevirtual |
Message destiné au ième processeur.
Implémente Arcane::IParallelExchanger.
Définition à la ligne 355 du fichier ParallelExchanger.cc.
|
inlineoverridevirtual |
Nom de l'instance.
Implémente Arcane::IParallelExchanger.
Définition à la ligne 84 du fichier ParallelExchanger.h.
|
inlineoverridevirtual |
Nombre de processeurs dont on va réceptionner les messages.
Implémente Arcane::IParallelExchanger.
Définition à la ligne 73 du fichier ParallelExchanger.h.
|
inlineoverridevirtual |
Nombre de processeurs auquel on envoie.
Implémente Arcane::IParallelExchanger.
Définition à la ligne 69 du fichier ParallelExchanger.h.
|
overridevirtual |
Implémente Arcane::IParallelExchanger.
Définition à la ligne 74 du fichier ParallelExchanger.cc.
|
overridevirtual |
Effectue l'échange avec les options par défaut de ParallelExchangerOptions.
Implémente Arcane::IParallelExchanger.
Définition à la ligne 166 du fichier ParallelExchanger.cc.
Références Arcane::ParallelExchangerOptions::setExchangeMode().
|
overridevirtual |
Effectue l'échange avec les options options.
Implémente Arcane::IParallelExchanger.
Définition à la ligne 177 du fichier ParallelExchanger.cc.
|
inlineoverridevirtual |
Liste des rangs des processeurs dont on va réceptionner les messages.
Implémente Arcane::IParallelExchanger.
Définition à la ligne 74 du fichier ParallelExchanger.h.
|
inlineoverridevirtual |
Liste des rangs des processeurs auquel on envoie.
Implémente Arcane::IParallelExchanger.
Définition à la ligne 70 du fichier ParallelExchanger.h.
|
inlineoverridevirtual |
Positionne le mode d'échange.
Implémente Arcane::IParallelExchanger.
Définition à la ligne 77 du fichier ParallelExchanger.h.
Positionne le nom de l'instance. Ce nom est utilisé lors des impressions.
Implémente Arcane::IParallelExchanger.
Définition à la ligne 384 du fichier ParallelExchanger.cc.
|
overridevirtual |
Positionne le niveau de verbosité
Implémente Arcane::IParallelExchanger.
Définition à la ligne 373 du fichier ParallelExchanger.cc.
|
inlineoverridevirtual |
Niveau de verbosité
Implémente Arcane::IParallelExchanger.
Définition à la ligne 81 du fichier ParallelExchanger.h.
|
friend |
Définition à la ligne 487 du fichier ParallelExchanger.cc.
|
private |
Liste des message à envoyer et recevoir.
Définition à la ligne 97 du fichier ParallelExchanger.h.
|
private |
Mode d'échange.
Définition à la ligne 112 du fichier ParallelExchanger.h.
|
private |
Nom de l'instance utilisé pour l'affichage.
Définition à la ligne 118 du fichier ParallelExchanger.h.
|
private |
Message reçu par soi-même.
Définition à la ligne 109 du fichier ParallelExchanger.h.
|
private |
Message envoyé à soi-même.
Définition à la ligne 106 du fichier ParallelExchanger.h.
|
private |
Définition à la ligne 88 du fichier ParallelExchanger.h.
|
private |
Liste des sous-domaines à recevoir.
Définition à la ligne 94 du fichier ParallelExchanger.h.
|
private |
Liste des message à recevoir.
Définition à la ligne 100 du fichier ParallelExchanger.h.
|
private |
Liste des sous-domaines à envoyer.
Définition à la ligne 91 du fichier ParallelExchanger.h.
|
private |
Liste des message à recevoir.
Définition à la ligne 103 du fichier ParallelExchanger.h.
|
private |
Timer pour mesurer le temps passé dans les échanges.
Définition à la ligne 121 du fichier ParallelExchanger.h.
|
private |
Niveau de verbosité
Définition à la ligne 115 du fichier ParallelExchanger.h.