Arcane  v3.16.0.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 Arcane::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 Arcane::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

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 :

◆ 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.

Références m_send_ranks.

◆ 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.

Références m_exchange_mode.

◆ 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.

Références m_recv_ranks, et m_send_ranks.

◆ 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.

Références m_recv_ranks, et Arcane::ConstArrayView< T >::size().

+ Voici le graphe d'appel pour cette fonction :

◆ 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.

Références m_recv_serialize_infos.

◆ 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.

Références m_send_serialize_infos.

◆ name()

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

◆ 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.

Références m_recv_ranks.

◆ 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.

Références m_send_ranks.

◆ 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 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 :

◆ 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.

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 :

◆ 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.

Références m_recv_ranks.

◆ 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.

Références m_send_ranks.

◆ 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.

Références m_exchange_mode.

◆ 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.

Références m_name, et name().

+ Voici le graphe d'appel pour cette fonction :

◆ 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.

Références m_verbosity_level.

◆ verbosityLevel()

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

Niveau de verbosité

Implémente Arcane::IParallelExchanger.

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

Références m_verbosity_level.

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.

Référencé par _processExchangeWithControl().

◆ m_exchange_mode

eExchangeMode Arcane::ParallelExchanger::m_exchange_mode = EM_Independant
private

Mode d'échange.

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

Référencé par exchangeMode(), processExchange(), et setExchangeMode().

◆ 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.

Référencé par _processExchangeWithControl(), name(), processExchange(), et setName().

◆ 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.

Référencé par initializeCommunicationsMessages(), initializeCommunicationsMessages(), nbReceiver(), et receiverRanks().

◆ 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.

Référencé par messageToReceive().

◆ m_send_ranks

Int32UniqueArray Arcane::ParallelExchanger::m_send_ranks
private

Liste des sous-domaines à envoyer.

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

Référencé par addSender(), initializeCommunicationsMessages(), nbSender(), et senderRanks().

◆ 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.

Référencé par messageToSend().

◆ 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.

Référencé par processExchange().

◆ m_verbosity_level

Int32 Arcane::ParallelExchanger::m_verbosity_level = 0
private

Niveau de verbosité

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

Référencé par _processExchangeWithControl(), processExchange(), setVerbosityLevel(), et verbosityLevel().


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