Echange d'informations entre processeurs. Plus de détails...
#include <arcane/impl/ParallelExchanger.h>
Graphe d'héritage de Arcane::ParallelExchanger:
Graphe de collaboration de Arcane::ParallelExchanger: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 Arcane::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 Arcane::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 Arcane::Array< DataType >::begin(), Arcane::MessagePassing::ISerializeMessage::destination(), Arcane::Array< DataType >::end(), Arcane::TraceAccessor::info(), Arcane::MessagePassing::ISerializeMessage::isSend(), m_comms_buf, m_name, m_verbosity_level, Arcane::math::max(), Arcane::AbstractArray< T >::size(), Arcane::MessagePassing::ISerializeMessage::source(), et Arcane::MessagePassing::WaitSome.
Voici le graphe d'appel pour cette fonction :
|
inlineoverridevirtual |
Ajoute un processeur à envoyer.
Implémente Arcane::IParallelExchanger.
Définition à la ligne 71 du fichier ParallelExchanger.h.
Références m_send_ranks.
|
inlineoverridevirtual |
Mode d'échange spécifié
Implémente Arcane::IParallelExchanger.
Définition à la ligne 78 du fichier ParallelExchanger.h.
Références m_exchange_mode.
|
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.
Références m_recv_ranks, et m_send_ranks.
|
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.
Références m_recv_ranks, et Arcane::ConstArrayView< T >::size().
Voici le graphe d'appel pour cette fonction :
|
overridevirtual |
Message reçu du ième processeur.
Implémente Arcane::IParallelExchanger.
Définition à la ligne 364 du fichier ParallelExchanger.cc.
Références m_recv_serialize_infos.
|
overridevirtual |
Message destiné au ième processeur.
Implémente Arcane::IParallelExchanger.
Définition à la ligne 355 du fichier ParallelExchanger.cc.
Références m_send_serialize_infos.
|
inlineoverridevirtual |
Nom de l'instance.
Implémente Arcane::IParallelExchanger.
Définition à la ligne 84 du fichier ParallelExchanger.h.
Références m_name.
Référencé par setName().
Voici le graphe des appelants de cette fonction :
|
inlineoverridevirtual |
Nombre de processeurs dont on va réceptionner les messages.
Implémente Arcane::IParallelExchanger.
Définition à la ligne 73 du fichier ParallelExchanger.h.
Références m_recv_ranks.
|
inlineoverridevirtual |
Nombre de processeurs auquel on envoie.
Implémente Arcane::IParallelExchanger.
Définition à la ligne 69 du fichier ParallelExchanger.h.
Références m_send_ranks.
|
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 m_exchange_mode, processExchange(), et Arcane::ParallelExchangerOptions::setExchangeMode().
Référencé par processExchange().
Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :
|
overridevirtual |
Effectue l'échange avec les options options.
Implémente Arcane::IParallelExchanger.
Définition à la ligne 177 du fichier ParallelExchanger.cc.
Références Arcane::platform::getCurrentDateTime(), Arcane::TraceAccessor::info(), m_name, m_timer, et m_verbosity_level.
Voici le graphe d'appel pour cette fonction :
|
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.
Références m_recv_ranks.
|
inlineoverridevirtual |
Liste des rangs des processeurs auquel on envoie.
Implémente Arcane::IParallelExchanger.
Définition à la ligne 70 du fichier ParallelExchanger.h.
Références m_send_ranks.
|
inlineoverridevirtual |
Positionne le mode d'échange.
Implémente Arcane::IParallelExchanger.
Définition à la ligne 77 du fichier ParallelExchanger.h.
Références m_exchange_mode.
|
overridevirtual |
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.
Voici le graphe d'appel pour cette fonction :
|
overridevirtual |
Positionne le niveau de verbosité
Implémente Arcane::IParallelExchanger.
Définition à la ligne 373 du fichier ParallelExchanger.cc.
Références m_verbosity_level.
|
inlineoverridevirtual |
Niveau de verbosité
Implémente Arcane::IParallelExchanger.
Définition à la ligne 81 du fichier ParallelExchanger.h.
Références m_verbosity_level.
|
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.
Référencé par _processExchangeWithControl().
|
private |
Mode d'échange.
Définition à la ligne 112 du fichier ParallelExchanger.h.
Référencé par exchangeMode(), processExchange(), et setExchangeMode().
|
private |
Nom de l'instance utilisé pour l'affichage.
Définition à la ligne 118 du fichier ParallelExchanger.h.
Référencé par _processExchangeWithControl(), name(), processExchange(), et setName().
|
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.
Référencé par initializeCommunicationsMessages(), initializeCommunicationsMessages(), nbReceiver(), et receiverRanks().
|
private |
Liste des message à recevoir.
Définition à la ligne 100 du fichier ParallelExchanger.h.
Référencé par messageToReceive().
|
private |
Liste des sous-domaines à envoyer.
Définition à la ligne 91 du fichier ParallelExchanger.h.
Référencé par addSender(), initializeCommunicationsMessages(), nbSender(), et senderRanks().
|
private |
Liste des message à recevoir.
Définition à la ligne 103 du fichier ParallelExchanger.h.
Référencé par messageToSend().
|
private |
Timer pour mesurer le temps passé dans les échanges.
Définition à la ligne 121 du fichier ParallelExchanger.h.
Référencé par processExchange().
|
private |
Niveau de verbosité
Définition à la ligne 115 du fichier ParallelExchanger.h.
Référencé par _processExchangeWithControl(), processExchange(), setVerbosityLevel(), et verbosityLevel().