Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::ParallelExchanger

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.
 
IParallelMngparallelMng () 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.
 
ISerializeMessagemessageToSend (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.
 
ISerializeMessagemessageToReceive (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.
 
TraceAccessoroperator= (const TraceAccessor &rhs)
 Opérateur de recopie.
 
virtual ~TraceAccessor ()
 Libère les ressources.
 
ITraceMngtraceMng () 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< IParallelMngm_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.
 
SerializeMessagem_own_send_message = nullptr
 Message envoyé à soi-même.
 
SerializeMessagem_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< IParallelExchangercreateParallelExchangerImpl (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
 

Description détaillée

Echange d'informations entre processeurs.

Voir également
IParallelExchanger

Définition à la ligne 43 du fichier ParallelExchanger.h.

Documentation des constructeurs et destructeur

◆ ParallelExchanger() [1/2]

Arcane::ParallelExchanger::ParallelExchanger ( IParallelMng pm)

Définition à la ligne 38 du fichier ParallelExchanger.cc.

◆ ~ParallelExchanger()

Arcane::ParallelExchanger::~ParallelExchanger ( )
override

Définition à la ligne 61 du fichier ParallelExchanger.cc.

◆ ParallelExchanger() [2/2]

Arcane::ParallelExchanger::ParallelExchanger ( Ref< IParallelMng pm)
private

Définition à la ligne 47 du fichier ParallelExchanger.cc.

Documentation des fonctions membres

◆ _initializeCommunicationsMessages()

void Arcane::ParallelExchanger::_initializeCommunicationsMessages ( )
private

Définition à la ligne 137 du fichier ParallelExchanger.cc.

◆ _processExchange()

void Arcane::ParallelExchanger::_processExchange ( const ParallelExchangerOptions options)
private

Définition à la ligne 197 du fichier ParallelExchanger.cc.

◆ _processExchangeCollective()

void Arcane::ParallelExchanger::_processExchangeCollective ( )
private

Définition à la ligne 253 du fichier ParallelExchanger.cc.

◆ _processExchangeWithControl()

void Arcane::ParallelExchanger::_processExchangeWithControl ( Int32  max_pending_message)
private

◆ addSender()

void Arcane::ParallelExchanger::addSender ( Int32  rank)
inlineoverridevirtual

Ajoute un processeur à envoyer.

Implémente Arcane::IParallelExchanger.

Définition à la ligne 71 du fichier ParallelExchanger.h.

◆ exchangeMode()

eExchangeMode Arcane::ParallelExchanger::exchangeMode ( ) const
inlineoverridevirtual

Mode d'échange spécifié

Implémente Arcane::IParallelExchanger.

Définition à la ligne 78 du fichier ParallelExchanger.h.

◆ initializeCommunicationsMessages() [1/2]

bool Arcane::ParallelExchanger::initializeCommunicationsMessages ( )
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.

Valeurs retournées
trues'il n'y a rien à échanger
falsesinon.

Implémente Arcane::IParallelExchanger.

Définition à la ligne 83 du fichier ParallelExchanger.cc.

◆ initializeCommunicationsMessages() [2/2]

void Arcane::ParallelExchanger::initializeCommunicationsMessages ( Int32ConstArrayView  recv_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.

◆ messageToReceive()

ISerializeMessage * Arcane::ParallelExchanger::messageToReceive ( Integer  i)
overridevirtual

Message reçu du ième processeur.

Implémente Arcane::IParallelExchanger.

Définition à la ligne 364 du fichier ParallelExchanger.cc.

◆ messageToSend()

ISerializeMessage * Arcane::ParallelExchanger::messageToSend ( Integer  i)
overridevirtual

Message destiné au ième processeur.

Implémente Arcane::IParallelExchanger.

Définition à la ligne 355 du fichier ParallelExchanger.cc.

◆ name()

String Arcane::ParallelExchanger::name ( ) const
inlineoverridevirtual

Nom de l'instance.

Implémente Arcane::IParallelExchanger.

Définition à la ligne 84 du fichier ParallelExchanger.h.

◆ nbReceiver()

Integer Arcane::ParallelExchanger::nbReceiver ( ) const
inlineoverridevirtual

Nombre de processeurs dont on va réceptionner les messages.

Implémente Arcane::IParallelExchanger.

Définition à la ligne 73 du fichier ParallelExchanger.h.

◆ nbSender()

Integer Arcane::ParallelExchanger::nbSender ( ) const
inlineoverridevirtual

Nombre de processeurs auquel on envoie.

Implémente Arcane::IParallelExchanger.

Définition à la ligne 69 du fichier ParallelExchanger.h.

◆ parallelMng()

IParallelMng * Arcane::ParallelExchanger::parallelMng ( ) const
overridevirtual

Implémente Arcane::IParallelExchanger.

Définition à la ligne 74 du fichier ParallelExchanger.cc.

◆ processExchange() [1/2]

void Arcane::ParallelExchanger::processExchange ( )
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().

◆ processExchange() [2/2]

void Arcane::ParallelExchanger::processExchange ( const ParallelExchangerOptions options)
overridevirtual

Effectue l'échange avec les options options.

Implémente Arcane::IParallelExchanger.

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

◆ receiverRanks()

Int32ConstArrayView Arcane::ParallelExchanger::receiverRanks ( )
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.

◆ senderRanks()

Int32ConstArrayView Arcane::ParallelExchanger::senderRanks ( ) const
inlineoverridevirtual

Liste des rangs des processeurs auquel on envoie.

Implémente Arcane::IParallelExchanger.

Définition à la ligne 70 du fichier ParallelExchanger.h.

◆ setExchangeMode()

void Arcane::ParallelExchanger::setExchangeMode ( eExchangeMode  mode)
inlineoverridevirtual

Positionne le mode d'échange.

Implémente Arcane::IParallelExchanger.

Définition à la ligne 77 du fichier ParallelExchanger.h.

◆ setName()

void Arcane::ParallelExchanger::setName ( const String name)
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.

◆ setVerbosityLevel()

void Arcane::ParallelExchanger::setVerbosityLevel ( Int32  v)
overridevirtual

Positionne le niveau de verbosité

Implémente Arcane::IParallelExchanger.

Définition à la ligne 373 du fichier ParallelExchanger.cc.

◆ verbosityLevel()

Int32 Arcane::ParallelExchanger::verbosityLevel ( ) const
inlineoverridevirtual

Niveau de verbosité

Implémente Arcane::IParallelExchanger.

Définition à la ligne 81 du fichier ParallelExchanger.h.

Documentation des fonctions amies et associées

◆ createParallelExchangerImpl

Ref< IParallelExchanger > createParallelExchangerImpl ( Ref< IParallelMng pm)
friend

Définition à la ligne 487 du fichier ParallelExchanger.cc.

Documentation des données membres

◆ m_comms_buf

UniqueArray<ISerializeMessage*> Arcane::ParallelExchanger::m_comms_buf
private

Liste des message à envoyer et recevoir.

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

◆ m_exchange_mode

eExchangeMode Arcane::ParallelExchanger::m_exchange_mode = EM_Independant
private

Mode d'échange.

Définition à la ligne 112 du fichier ParallelExchanger.h.

◆ m_name

String Arcane::ParallelExchanger::m_name
private

Nom de l'instance utilisé pour l'affichage.

Définition à la ligne 118 du fichier ParallelExchanger.h.

◆ m_own_recv_message

SerializeMessage* Arcane::ParallelExchanger::m_own_recv_message = nullptr
private

Message reçu par soi-même.

Définition à la ligne 109 du fichier ParallelExchanger.h.

◆ m_own_send_message

SerializeMessage* Arcane::ParallelExchanger::m_own_send_message = nullptr
private

Message envoyé à soi-même.

Définition à la ligne 106 du fichier ParallelExchanger.h.

◆ m_parallel_mng

Ref<IParallelMng> Arcane::ParallelExchanger::m_parallel_mng
private

Définition à la ligne 88 du fichier ParallelExchanger.h.

◆ m_recv_ranks

Int32UniqueArray Arcane::ParallelExchanger::m_recv_ranks
private

Liste des sous-domaines à recevoir.

Définition à la ligne 94 du fichier ParallelExchanger.h.

◆ m_recv_serialize_infos

UniqueArray<SerializeMessage*> Arcane::ParallelExchanger::m_recv_serialize_infos
private

Liste des message à recevoir.

Définition à la ligne 100 du fichier ParallelExchanger.h.

◆ m_send_ranks

Int32UniqueArray Arcane::ParallelExchanger::m_send_ranks
private

Liste des sous-domaines à envoyer.

Définition à la ligne 91 du fichier ParallelExchanger.h.

◆ m_send_serialize_infos

UniqueArray<SerializeMessage*> Arcane::ParallelExchanger::m_send_serialize_infos
private

Liste des message à recevoir.

Définition à la ligne 103 du fichier ParallelExchanger.h.

◆ m_timer

Timer Arcane::ParallelExchanger::m_timer
private

Timer pour mesurer le temps passé dans les échanges.

Définition à la ligne 121 du fichier ParallelExchanger.h.

◆ m_verbosity_level

Int32 Arcane::ParallelExchanger::m_verbosity_level = 0
private

Niveau de verbosité

Définition à la ligne 115 du fichier ParallelExchanger.h.


La documentation de cette classe a été générée à partir des fichiers suivants :