12#ifndef ARCANE_PARALLELEXCHANGER_H
13#define ARCANE_PARALLELEXCHANGER_H
17#include "arcane/utils/TraceAccessor.h"
18#include "arcane/utils/Array.h"
19#include "arcane/utils/String.h"
20#include "arcane/utils/Ref.h"
22#include "arcane/IParallelExchanger.h"
23#include "arcane/Timer.h"
43class ARCANE_IMPL_EXPORT ParallelExchanger
51 [[deprecated(
"Y2022: Use Arcane::createParallelExchangerImpl() instead")]]
53 ~ParallelExchanger()
override;
80 void setVerbosityLevel(
Int32 v)
override;
83 void setName(
const String& name)
override;
125 void _initializeCommunicationsMessages();
126 void _processExchangeCollective();
Echange d'informations entre processeurs.
@ EM_Independant
Utilise les échanges point à point (send/recv)
Interface du gestionnaire de parallélisme pour un sous-domaine.
Interface d'un message de sérialisation entre IMessagePassingMng.
Options pour IParallelMng::processExchange().
Int32UniqueArray m_send_ranks
Liste des sous-domaines à envoyer.
String m_name
Nom de l'instance utilisé pour l'affichage.
void setExchangeMode(eExchangeMode mode) override
Positionne le mode d'échange.
Integer nbSender() const override
Nombre de processeurs auquel on envoie.
bool initializeCommunicationsMessages() override
Calcule les communications.
UniqueArray< SerializeMessage * > m_recv_serialize_infos
Liste des message à recevoir.
eExchangeMode exchangeMode() const override
Mode d'échange spécifié
void processExchange() override
Effectue l'échange avec les options par défaut de ParallelExchangerOptions.
Int32ConstArrayView senderRanks() const override
Liste des rangs des processeurs auquel on envoie.
void _processExchangeWithControl(Int32 max_pending_message)
Echange avec contrôle du nombre maximum de messages en vol.
Int32 m_verbosity_level
Niveau de verbosité
void addSender(Int32 rank) override
Ajoute un processeur à envoyer.
SerializeMessage * m_own_send_message
Message envoyé à soi-même.
Timer m_timer
Timer pour mesurer le temps passé dans les échanges.
String name() const override
Nom de l'instance.
Int32 verbosityLevel() const override
Niveau de verbosité
Integer nbReceiver() const override
Nombre de processeurs dont on va réceptionner les messages.
UniqueArray< SerializeMessage * > m_send_serialize_infos
Liste des message à recevoir.
Int32UniqueArray m_recv_ranks
Liste des sous-domaines à recevoir.
SerializeMessage * m_own_recv_message
Message reçu par soi-même.
eExchangeMode m_exchange_mode
Mode d'échange.
Int32ConstArrayView receiverRanks() override
Liste des rangs des processeurs dont on va réceptionner les messages.
UniqueArray< ISerializeMessage * > m_comms_buf
Liste des message à envoyer et recevoir.
Référence à une instance.
Message utilisant un SerializeBuffer.
Chaîne de caractères unicode.
TraceAccessor(ITraceMng *m)
Construit un accesseur via le gestionnaire de trace m.
Vecteur 1D de données avec sémantique par valeur (style STL).
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
UniqueArray< Int32 > Int32UniqueArray
Tableau dynamique à une dimension d'entiers 32 bits.
std::int32_t Int32
Type entier signé sur 32 bits.