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/core/IParallelExchanger.h"
23#include "arcane/core/Timer.h"
44class ARCANE_IMPL_EXPORT ParallelExchanger
52 [[deprecated(
"Y2022: Use Arcane::createParallelExchangerImpl() instead")]]
54 ~ParallelExchanger()
override;
81 void setVerbosityLevel(
Int32 v)
override;
84 void setName(
const String& name)
override;
126 void _initializeCommunicationsMessages();
127 void _processExchangeCollective();
Information exchange between processors.
@ EM_Independant
Uses point-to-point exchanges (send/recv).
Interface of the parallelism manager for a subdomain.
Interface for a serialization message between IMessagePassingMng.
Options for IParallelMng::processExchange().
Int32UniqueArray m_send_ranks
List of subdomains to send.
String m_name
Instance name used for display.
void setExchangeMode(eExchangeMode mode) override
Sets the exchange mode.
Integer nbSender() const override
Number of processors to which we send.
bool initializeCommunicationsMessages() override
Calculates communications.
UniqueArray< SerializeMessage * > m_recv_serialize_infos
List of messages to receive.
eExchangeMode exchangeMode() const override
Specified exchange mode.
void processExchange() override
Performs the exchange using the default options of ParallelExchangerOptions.
Int32ConstArrayView senderRanks() const override
List of ranks of processors to which we send.
void _processExchangeWithControl(Int32 max_pending_message)
Exchange with control over the maximum number of messages in flight.
Int32 m_verbosity_level
Verbosity level.
void addSender(Int32 rank) override
Adds a processor to send to.
SerializeMessage * m_own_send_message
Message sent to self.
Timer m_timer
Timer to measure time spent in exchanges.
String name() const override
Instance name.
Int32 verbosityLevel() const override
Verbosity level.
Integer nbReceiver() const override
Number of processors from which we will receive messages.
UniqueArray< SerializeMessage * > m_send_serialize_infos
List of messages to receive.
Int32UniqueArray m_recv_ranks
List of subdomains to receive.
SerializeMessage * m_own_recv_message
Message received by self.
eExchangeMode m_exchange_mode
Exchange mode.
Int32ConstArrayView receiverRanks() override
List of ranks of processors from which we will receive messages.
UniqueArray< ISerializeMessage * > m_comms_buf
List of messages to send and receive.
Reference to an instance.
Message using a SerializeBuffer.
Unicode character string.
TraceAccessor(ITraceMng *m)
Constructs an accessor via the trace manager m.
1D data vector with value semantics (STL style).
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type representing an integer.
ConstArrayView< Int32 > Int32ConstArrayView
C equivalent of a 1D array of 32-bit integers.
UniqueArray< Int32 > Int32UniqueArray
Dynamic 1D array of 32-bit integers.
std::int32_t Int32
Signed integer type of 32 bits.