Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::MpiAdapter Class Reference

Adapter for MPI. More...

#include </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/message_passing_mpi/arccore/message_passing_mpi/internal/MpiAdapter.h>

Inheritance diagram for Arcane::MpiAdapter:
Collaboration diagram for Arcane::MpiAdapter:

Classes

class  RequestSet
struct  SubRequestInfo

Public Member Functions

 MpiAdapter (ITraceMng *msg, IStat *stat, MPI_Comm comm, MpiLock *mpi_lock, IMpiProfiling *mpi_prof=nullptr)
 MpiAdapter (const MpiAdapter &rhs)=delete
MpiAdapteroperator= (const MpiAdapter &rhs)=delete
void destroy ()
 Destroys the instance. It should no longer be used afterward.
void broadcast (void *buf, Int64 nb_elem, Int32 root, MPI_Datatype datatype)
void allGather (const void *send_buf, void *recv_buf, Int64 nb_elem, MPI_Datatype datatype)
void gather (const void *send_buf, void *recv_buf, Int64 nb_elem, Int32 root, MPI_Datatype datatype)
void allGatherVariable (const void *send_buf, void *recv_buf, const int *recv_counts, const int *recv_indexes, Int64 nb_elem, MPI_Datatype datatype)
void gatherVariable (const void *send_buf, void *recv_buf, const int *recv_counts, const int *recv_indexes, Int64 nb_elem, Int32 root, MPI_Datatype datatype)
void scatterVariable (const void *send_buf, const int *send_count, const int *send_indexes, void *recv_buf, Int64 nb_elem, Int32 root, MPI_Datatype datatype)
void allToAll (const void *send_buf, void *recv_buf, Int32 count, MPI_Datatype datatype)
void allToAllVariable (const void *send_buf, const int *send_counts, const int *send_indexes, void *recv_buf, const int *recv_counts, const int *recv_indexes, MPI_Datatype datatype)
void reduce (const void *send_buf, void *recv_buf, Int64 count, MPI_Datatype datatype, MPI_Op op, Int32 root)
void allReduce (const void *send_buf, void *recv_buf, Int64 count, MPI_Datatype datatype, MPI_Op op)
void scan (const void *send_buf, void *recv_buf, Int64 count, MPI_Datatype datatype, MPI_Op op)
void directSendRecv (const void *send_buffer, Int64 send_buffer_size, void *recv_buffer, Int64 recv_buffer_size, Int32 proc, Int64 elem_size, MPI_Datatype data_type)
Request directSend (const void *send_buffer, Int64 send_buffer_size, Int32 proc, Int64 elem_size, MPI_Datatype data_type, int mpi_tag, bool is_blocked)
Request sendNonBlockingNoStat (const void *send_buffer, Int64 send_buffer_size, Int32 proc, MPI_Datatype data_type, int mpi_tag)
 Non-blocking version of send without temporal statistics.
Request directRecv (void *recv_buffer, Int64 recv_buffer_size, Int32 source_rank, Int64 elem_size, MPI_Datatype data_type, int mpi_tag, bool is_blocked)
Request directRecv (void *recv_buffer, Int64 recv_buffer_size, MessageId message, Int64 elem_size, MPI_Datatype data_type, bool is_blocked)
 Reception via MPI_Mrecv() or MPI_Imrecv().
Request receiveNonBlockingNoStat (void *recv_buffer, Int64 recv_buffer_size, Int32 source_rank, MPI_Datatype data_type, int mpi_tag)
 Non-blocking version of receive without temporal statistics.
Request directSendPack (const void *send_buffer, Int64 send_buffer_size, Int32 proc, int mpi_tag, bool is_blocked)
void probeRecvPack (UniqueArray< Byte > &recv_buffer, Int32 proc)
MessageId probeMessage (PointToPointMessageInfo message)
MessageSourceInfo legacyProbeMessage (PointToPointMessageInfo message)
Request directRecvPack (void *recv_buffer, Int64 recv_buffer_size, Int32 proc, int mpi_tag, bool is_blocking)
void waitAllRequests (ArrayView< Request > requests)
void waitSomeRequests (ArrayView< Request > requests, ArrayView< bool > indexes, bool is_non_blocking)
void waitSomeRequestsMPI (ArrayView< Request > requests, ArrayView< bool > indexes, ArrayView< MPI_Status > mpi_status, bool is_non_blocking)
int commRank () const
 Rank of this instance in the communicator.
int commSize () const
 Number of ranks in the communicator.
MpiMessagePassingMngcommSplit (bool keep)
void freeRequest (Request &request)
bool testRequest (Request &request)
void enableDebugRequest (bool enable_debug_request)
MpiLockmpiLock () const
Request nonBlockingBroadcast (void *buf, Int64 nb_elem, Int32 root, MPI_Datatype datatype)
Request nonBlockingAllGather (const void *send_buf, void *recv_buf, Int64 nb_elem, MPI_Datatype datatype)
Request nonBlockingGather (const void *send_buf, void *recv_buf, Int64 nb_elem, Int32 root, MPI_Datatype datatype)
Request nonBlockingAllToAll (const void *send_buf, void *recv_buf, Int32 count, MPI_Datatype datatype)
Request nonBlockingAllReduce (const void *send_buf, void *recv_buf, Int64 count, MPI_Datatype datatype, MPI_Op op)
Request nonBlockingAllToAllVariable (const void *send_buf, const int *send_counts, const int *send_indexes, void *recv_buf, const int *recv_counts, const int *recv_indexes, MPI_Datatype datatype)
Request nonBlockingBarrier ()
void barrier ()
int toMPISize (Int64 count)
Request buildRequest (int ret, MPI_Request request)
 Constructs an Arccore request from an MPI request.
void setRequestErrorAreFatal (bool v)
 Indicates if errors in the list of requests are fatal.
bool isRequestErrorAreFatal () const
void setPrintRequestError (bool v)
 Indicates if messages are displayed for errors in the requests.
bool isPrintRequestError () const
void setTraceMPIMessage (bool v)
 Indicates if messages are displayed for each MPI call.
bool isTraceMPIMessage () const
void setCheckRequest (bool v)
 Indicates if requests are checked.
bool isCheckRequest () const
void setMpiProfiling (IMpiProfiling *mpi_profiling)
void setProfiler (IProfiler *profiler)
IMpiProfilinggetMpiProfiling () const
IProfilerprofiler () const
ITimeMetricCollectortimeMetricCollector () const
void setTimeMetricCollector (ITimeMetricCollector *v)
bool isAllowNullRankForAnySource () const
void initializeWindowCreator (MPI_Comm comm_machine)
MpiMachineShMemWinBaseInternalCreatorwindowCreator () const
Public Member Functions inherited from Arcane::TraceAccessor
 TraceAccessor (ITraceMng *m)
 Constructs an accessor via the trace manager m.
 TraceAccessor (const TraceAccessor &rhs)
 Copy constructor.
TraceAccessoroperator= (const TraceAccessor &rhs)
 Copy assignment operator.
virtual ~TraceAccessor ()
 Frees resources.
ITraceMngtraceMng () const
 Trace manager.
TraceMessage info () const
 Flow for an information message.
TraceMessage pinfo () const
 Flow for a parallel information message.
TraceMessage info (char category) const
 Flow for an information message of a given category.
TraceMessage pinfo (char category) const
 Flow for a parallel information message of a given category.
TraceMessage info (bool v) const
 Flow for an information message.
TraceMessage warning () const
 Flow for a warning message.
TraceMessage pwarning () const
TraceMessage error () const
 Flow for an error message.
TraceMessage perror () const
TraceMessage log () const
 Flow for a log message.
TraceMessage plog () const
 Flow for a log message.
TraceMessage logdate () const
 Flow for a log message preceded by the date.
TraceMessage fatal () const
 Flow for a fatal error message.
TraceMessage pfatal () const
 Flow for a parallel fatal error message.
TraceMessageDbg debug (Trace::eDebugLevel=Trace::Medium) const
 Flow for a debug message.
Trace::eDebugLevel configDbgLevel () const
 Debug level of the configuration file.
TraceMessage info (Int32 verbose_level) const
 Flow for an information message of a given level.
TraceMessage linfo () const
 Flow for an information message with the local information level of this instance.
TraceMessage linfo (Int32 relative_level) const
 Flow for an information message with the local information level of this instance.
void fatalMessage (const StandaloneTraceMessage &o) const

Private Member Functions

bool _waitAllRequestsMPI (ArrayView< Request > requests, ArrayView< bool > indexes, ArrayView< MPI_Status > mpi_status)
void _trace (const char *function)
void _addRequest (MPI_Request request)
void _removeRequest (MPI_Request request)
void _checkFatalInRequest ()
MessageId _probeMessage (MessageRank source, MessageTag tag, bool is_blocking)
MessageSourceInfo _legacyProbeMessage (MessageRank source, MessageTag tag, bool is_blocking)
bool _handleEndRequests (ArrayView< Request > requests, ArrayView< bool > done_indexes, ArrayView< MPI_Status > status)
void _checkHasNoRequests ()
MessageSourceInfo _buildSourceInfoFromStatus (const MPI_Status &status)

Private Attributes

IStatm_stat = nullptr
MpiLockm_mpi_lock = nullptr
IMpiProfilingm_mpi_prof = nullptr
ITimeMetricCollectorm_metric_collector = nullptr
MPI_Comm m_communicator
 MPI Communicator.
int m_comm_rank = A_PROC_NULL_RANK
int m_comm_size = 0
Int64 m_nb_all_reduce = 0
Int64 m_nb_reduce = 0
bool m_is_trace = false
RequestSetm_request_set = nullptr
MPI_Request m_empty_request1
 Empty requests. See MpiAdapter.cc for more information.
MPI_Request m_empty_request2
int m_recv_buffer_for_empty_request [1]
int m_send_buffer_for_empty_request2 [1]
int m_recv_buffer_for_empty_request2 [1]
bool m_is_allow_null_rank_for_any_source = true
Ref< MpiMachineShMemWinBaseInternalCreatorm_window_creator

Additional Inherited Members

Protected Member Functions inherited from Arcane::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
Int32 _localVerboseLevel () const

Detailed Description

Adapter for MPI.

Warning
in hybrid MPI/Thread, an instance of this class is shared among all threads of an MPI process and therefore all methods of this class must be thread-safe.
Todo

make statistics thread-safe

make m_allocated_request thread-safe

Definition at line 46 of file MpiAdapter.h.

Constructor & Destructor Documentation

◆ MpiAdapter()

Arcane::MessagePassing::Mpi::MpiAdapter::MpiAdapter ( ITraceMng * msg,
IStat * stat,
MPI_Comm comm,
MpiLock * mpi_lock,
IMpiProfiling * mpi_prof = nullptr )

This type of request is used by openmpi starting from version 1.8 (it needs to be checked for 1.6, knowing that 1.4 and 1.5 do not have it). This request works somewhat like MPI_REQUEST_NULL and it is possible that it is returned multiple times. Therefore, this request should not be put into m_allocated_requests. We cannot directly access the address of this empty request, but the 1.8 implementation of openmpi returns this request when calling an IRecv with an MPI_PROC_NULL source. We therefore retrieve the value like this.

Definition at line 268 of file MpiAdapter.cc.

◆ ~MpiAdapter()

Arcane::MessagePassing::Mpi::MpiAdapter::~MpiAdapter ( )
overrideprotected

Definition at line 334 of file MpiAdapter.cc.

Member Function Documentation

◆ _addRequest()

void Arcane::MessagePassing::Mpi::MpiAdapter::_addRequest ( MPI_Request request)
private
Warning
This function must be called with the mpi_lock lock active.

Definition at line 1678 of file MpiAdapter.cc.

◆ _buildSourceInfoFromStatus()

MessageSourceInfo Arcane::MessagePassing::Mpi::MpiAdapter::_buildSourceInfoFromStatus ( const MPI_Status & status)
private

Definition at line 1131 of file MpiAdapter.cc.

◆ _checkFatalInRequest()

void Arcane::MessagePassing::Mpi::MpiAdapter::_checkFatalInRequest ( )
private

Definition at line 1710 of file MpiAdapter.cc.

◆ _checkHasNoRequests()

void Arcane::MessagePassing::Mpi::MpiAdapter::_checkHasNoRequests ( )
private

Definition at line 358 of file MpiAdapter.cc.

◆ _handleEndRequests()

bool Arcane::MessagePassing::Mpi::MpiAdapter::_handleEndRequests ( ArrayView< Request > requests,
ArrayView< bool > done_indexes,
ArrayView< MPI_Status > status )
private

Definition at line 1383 of file MpiAdapter.cc.

◆ _legacyProbeMessage()

MessageSourceInfo Arcane::MessagePassing::Mpi::MpiAdapter::_legacyProbeMessage ( MessageRank source,
MessageTag tag,
bool is_blocking )
private

Definition at line 1198 of file MpiAdapter.cc.

◆ _probeMessage()

MessageId Arcane::MessagePassing::Mpi::MpiAdapter::_probeMessage ( MessageRank source,
MessageTag tag,
bool is_blocking )
private

Definition at line 1145 of file MpiAdapter.cc.

◆ _removeRequest()

void Arcane::MessagePassing::Mpi::MpiAdapter::_removeRequest ( MPI_Request request)
private
Warning
This function must be called with the mpi_lock lock active.

Definition at line 1690 of file MpiAdapter.cc.

◆ _trace()

void Arcane::MessagePassing::Mpi::MpiAdapter::_trace ( const char * function)
private

Definition at line 430 of file MpiAdapter.cc.

◆ _waitAllRequestsMPI()

bool Arcane::MessagePassing::Mpi::MpiAdapter::_waitAllRequestsMPI ( ArrayView< Request > requests,
ArrayView< bool > indexes,
ArrayView< MPI_Status > mpi_status )
private

Definition at line 1464 of file MpiAdapter.cc.

◆ allGather()

void Arcane::MessagePassing::Mpi::MpiAdapter::allGather ( const void * send_buf,
void * recv_buf,
Int64 nb_elem,
MPI_Datatype datatype )

Definition at line 531 of file MpiAdapter.cc.

◆ allGatherVariable()

void Arcane::MessagePassing::Mpi::MpiAdapter::allGatherVariable ( const void * send_buf,
void * recv_buf,
const int * recv_counts,
const int * recv_indexes,
Int64 nb_elem,
MPI_Datatype datatype )

Definition at line 591 of file MpiAdapter.cc.

◆ allReduce()

void Arcane::MessagePassing::Mpi::MpiAdapter::allReduce ( const void * send_buf,
void * recv_buf,
Int64 count,
MPI_Datatype datatype,
MPI_Op op )

Definition at line 758 of file MpiAdapter.cc.

◆ allToAll()

void Arcane::MessagePassing::Mpi::MpiAdapter::allToAll ( const void * send_buf,
void * recv_buf,
Int32 count,
MPI_Datatype datatype )

Definition at line 641 of file MpiAdapter.cc.

◆ allToAllVariable()

void Arcane::MessagePassing::Mpi::MpiAdapter::allToAllVariable ( const void * send_buf,
const int * send_counts,
const int * send_indexes,
void * recv_buf,
const int * recv_counts,
const int * recv_indexes,
MPI_Datatype datatype )

Definition at line 679 of file MpiAdapter.cc.

◆ barrier()

void Arcane::MessagePassing::Mpi::MpiAdapter::barrier ( )

Definition at line 732 of file MpiAdapter.cc.

◆ broadcast()

void Arcane::MessagePassing::Mpi::MpiAdapter::broadcast ( void * buf,
Int64 nb_elem,
Int32 root,
MPI_Datatype datatype )

Definition at line 446 of file MpiAdapter.cc.

◆ buildRequest()

Constructs an Arccore request from an MPI request.

Definition at line 349 of file MpiAdapter.cc.

◆ commRank()

Rank of this instance in the communicator.

Definition at line 148 of file MpiAdapter.h.

◆ commSize()

Number of ranks in the communicator.

Definition at line 151 of file MpiAdapter.h.

◆ commSplit()

MpiMessagePassingMng * Arcane::MessagePassing::Mpi::MpiAdapter::commSplit ( bool keep)

Definition at line 989 of file MpiAdapter.cc.

◆ destroy()

Destroys the instance. It should no longer be used afterward.

Definition at line 374 of file MpiAdapter.cc.

◆ directRecv() [1/2]

Request Arcane::MessagePassing::Mpi::MpiAdapter::directRecv ( void * recv_buffer,
Int64 recv_buffer_size,
Int32 source_rank,
Int64 elem_size,
MPI_Datatype data_type,
int mpi_tag,
bool is_blocked )

Definition at line 1020 of file MpiAdapter.cc.

◆ directRecv() [2/2]

Request Arcane::MessagePassing::Mpi::MpiAdapter::directRecv ( void * recv_buffer,
Int64 recv_buffer_size,
MessageId message,
Int64 elem_size,
MPI_Datatype data_type,
bool is_blocked )

Reception via MPI_Mrecv() or MPI_Imrecv().

Definition at line 1247 of file MpiAdapter.cc.

◆ directRecvPack()

Request Arcane::MessagePassing::Mpi::MpiAdapter::directRecvPack ( void * recv_buffer,
Int64 recv_buffer_size,
Int32 proc,
int mpi_tag,
bool is_blocking )

Definition at line 1328 of file MpiAdapter.cc.

◆ directSend()

Request Arcane::MessagePassing::Mpi::MpiAdapter::directSend ( const void * send_buffer,
Int64 send_buffer_size,
Int32 proc,
Int64 elem_size,
MPI_Datatype data_type,
int mpi_tag,
bool is_blocked )

Definition at line 900 of file MpiAdapter.cc.

◆ directSendPack()

Request Arcane::MessagePassing::Mpi::MpiAdapter::directSendPack ( const void * send_buffer,
Int64 send_buffer_size,
Int32 proc,
int mpi_tag,
bool is_blocked )

Definition at line 979 of file MpiAdapter.cc.

◆ directSendRecv()

void Arcane::MessagePassing::Mpi::MpiAdapter::directSendRecv ( const void * send_buffer,
Int64 send_buffer_size,
void * recv_buffer,
Int64 recv_buffer_size,
Int32 proc,
Int64 elem_size,
MPI_Datatype data_type )

Definition at line 855 of file MpiAdapter.cc.

◆ enableDebugRequest()

void Arcane::MessagePassing::Mpi::MpiAdapter::enableDebugRequest ( bool enable_debug_request)

Definition at line 1699 of file MpiAdapter.cc.

◆ freeRequest()

void Arcane::MessagePassing::Mpi::MpiAdapter::freeRequest ( Request & request)

Definition at line 1619 of file MpiAdapter.cc.

◆ gather()

void Arcane::MessagePassing::Mpi::MpiAdapter::gather ( const void * send_buf,
void * recv_buf,
Int64 nb_elem,
Int32 root,
MPI_Datatype datatype )

Definition at line 489 of file MpiAdapter.cc.

◆ gatherVariable()

void Arcane::MessagePassing::Mpi::MpiAdapter::gatherVariable ( const void * send_buf,
void * recv_buf,
const int * recv_counts,
const int * recv_indexes,
Int64 nb_elem,
Int32 root,
MPI_Datatype datatype )

Definition at line 572 of file MpiAdapter.cc.

◆ getMpiProfiling()

IMpiProfiling * Arcane::MessagePassing::Mpi::MpiAdapter::getMpiProfiling ( ) const

Definition at line 1729 of file MpiAdapter.cc.

◆ initializeWindowCreator()

void Arcane::MessagePassing::Mpi::MpiAdapter::initializeWindowCreator ( MPI_Comm comm_machine)

Definition at line 1765 of file MpiAdapter.cc.

◆ isAllowNullRankForAnySource()

bool Arcane::MessagePassing::Mpi::MpiAdapter::isAllowNullRankForAnySource ( ) const
inline

Definition at line 214 of file MpiAdapter.h.

◆ isCheckRequest()

bool Arcane::MessagePassing::Mpi::MpiAdapter::isCheckRequest ( ) const

Definition at line 412 of file MpiAdapter.cc.

◆ isPrintRequestError()

bool Arcane::MessagePassing::Mpi::MpiAdapter::isPrintRequestError ( ) const

Definition at line 400 of file MpiAdapter.cc.

◆ isRequestErrorAreFatal()

bool Arcane::MessagePassing::Mpi::MpiAdapter::isRequestErrorAreFatal ( ) const

Definition at line 389 of file MpiAdapter.cc.

◆ isTraceMPIMessage()

bool Arcane::MessagePassing::Mpi::MpiAdapter::isTraceMPIMessage ( ) const
inline

Definition at line 192 of file MpiAdapter.h.

◆ legacyProbeMessage()

MessageSourceInfo Arcane::MessagePassing::Mpi::MpiAdapter::legacyProbeMessage ( PointToPointMessageInfo message)

Definition at line 1230 of file MpiAdapter.cc.

◆ mpiLock()

MpiLock * Arcane::MessagePassing::Mpi::MpiAdapter::mpiLock ( ) const
inline

Definition at line 160 of file MpiAdapter.h.

◆ nonBlockingAllGather()

Request Arcane::MessagePassing::Mpi::MpiAdapter::nonBlockingAllGather ( const void * send_buf,
void * recv_buf,
Int64 nb_elem,
MPI_Datatype datatype )

Definition at line 549 of file MpiAdapter.cc.

◆ nonBlockingAllReduce()

Request Arcane::MessagePassing::Mpi::MpiAdapter::nonBlockingAllReduce ( const void * send_buf,
void * recv_buf,
Int64 count,
MPI_Datatype datatype,
MPI_Op op )

Definition at line 788 of file MpiAdapter.cc.

◆ nonBlockingAllToAll()

Request Arcane::MessagePassing::Mpi::MpiAdapter::nonBlockingAllToAll ( const void * send_buf,
void * recv_buf,
Int32 count,
MPI_Datatype datatype )

Definition at line 658 of file MpiAdapter.cc.

◆ nonBlockingAllToAllVariable()

Request Arcane::MessagePassing::Mpi::MpiAdapter::nonBlockingAllToAllVariable ( const void * send_buf,
const int * send_counts,
const int * send_indexes,
void * recv_buf,
const int * recv_counts,
const int * recv_indexes,
MPI_Datatype datatype )

Definition at line 703 of file MpiAdapter.cc.

◆ nonBlockingBarrier()

Request Arcane::MessagePassing::Mpi::MpiAdapter::nonBlockingBarrier ( )

Definition at line 745 of file MpiAdapter.cc.

◆ nonBlockingBroadcast()

Request Arcane::MessagePassing::Mpi::MpiAdapter::nonBlockingBroadcast ( void * buf,
Int64 nb_elem,
Int32 root,
MPI_Datatype datatype )

Definition at line 469 of file MpiAdapter.cc.

◆ nonBlockingGather()

Request Arcane::MessagePassing::Mpi::MpiAdapter::nonBlockingGather ( const void * send_buf,
void * recv_buf,
Int64 nb_elem,
Int32 root,
MPI_Datatype datatype )

Definition at line 507 of file MpiAdapter.cc.

◆ probeMessage()

MessageId Arcane::MessagePassing::Mpi::MpiAdapter::probeMessage ( PointToPointMessageInfo message)

Definition at line 1182 of file MpiAdapter.cc.

◆ probeRecvPack()

void Arcane::MessagePassing::Mpi::MpiAdapter::probeRecvPack ( UniqueArray< Byte > & recv_buffer,
Int32 proc )

Definition at line 1107 of file MpiAdapter.cc.

◆ profiler()

IProfiler * Arcane::MessagePassing::Mpi::MpiAdapter::profiler ( ) const

Definition at line 1755 of file MpiAdapter.cc.

◆ receiveNonBlockingNoStat()

Request Arcane::MessagePassing::Mpi::MpiAdapter::receiveNonBlockingNoStat ( void * recv_buffer,
Int64 recv_buffer_size,
Int32 source_rank,
MPI_Datatype data_type,
int mpi_tag )

Non-blocking version of receive without temporal statistics.

Definition at line 1005 of file MpiAdapter.cc.

◆ reduce()

void Arcane::MessagePassing::Mpi::MpiAdapter::reduce ( const void * send_buf,
void * recv_buf,
Int64 count,
MPI_Datatype datatype,
MPI_Op op,
Int32 root )

Definition at line 807 of file MpiAdapter.cc.

◆ scan()

void Arcane::MessagePassing::Mpi::MpiAdapter::scan ( const void * send_buf,
void * recv_buf,
Int64 count,
MPI_Datatype datatype,
MPI_Op op )

Definition at line 840 of file MpiAdapter.cc.

◆ scatterVariable()

void Arcane::MessagePassing::Mpi::MpiAdapter::scatterVariable ( const void * send_buf,
const int * send_count,
const int * send_indexes,
void * recv_buf,
Int64 nb_elem,
Int32 root,
MPI_Datatype datatype )

Definition at line 613 of file MpiAdapter.cc.

◆ sendNonBlockingNoStat()

Request Arcane::MessagePassing::Mpi::MpiAdapter::sendNonBlockingNoStat ( const void * send_buffer,
Int64 send_buffer_size,
Int32 proc,
MPI_Datatype data_type,
int mpi_tag )

Non-blocking version of send without temporal statistics.

Definition at line 882 of file MpiAdapter.cc.

◆ setCheckRequest()

Indicates if requests are checked.

This value must not be modified if there are pending requests.

Definition at line 406 of file MpiAdapter.cc.

◆ setMpiProfiling()

void Arcane::MessagePassing::Mpi::MpiAdapter::setMpiProfiling ( IMpiProfiling * mpi_profiling)

Definition at line 1720 of file MpiAdapter.cc.

◆ setPrintRequestError()

Indicates if messages are displayed for errors in the requests.

Definition at line 395 of file MpiAdapter.cc.

◆ setProfiler()

void Arcane::MessagePassing::Mpi::MpiAdapter::setProfiler ( IProfiler * profiler)

Definition at line 1738 of file MpiAdapter.cc.

◆ setRequestErrorAreFatal()

Indicates if errors in the list of requests are fatal.

Definition at line 384 of file MpiAdapter.cc.

◆ setTimeMetricCollector()

void Arcane::MessagePassing::Mpi::MpiAdapter::setTimeMetricCollector ( ITimeMetricCollector * v)
inline

Definition at line 212 of file MpiAdapter.h.

◆ setTraceMPIMessage()

Indicates if messages are displayed for each MPI call.

Definition at line 191 of file MpiAdapter.h.

◆ testRequest()

bool Arcane::MessagePassing::Mpi::MpiAdapter::testRequest ( Request & request)

Definition at line 1640 of file MpiAdapter.cc.

◆ timeMetricCollector()

ITimeMetricCollector * Arcane::MessagePassing::Mpi::MpiAdapter::timeMetricCollector ( ) const
inline

Definition at line 211 of file MpiAdapter.h.

◆ toMPISize()

int Arcane::MessagePassing::Mpi::MpiAdapter::toMPISize ( Int64 count)

Definition at line 421 of file MpiAdapter.cc.

◆ waitAllRequests()

void Arcane::MessagePassing::Mpi::MpiAdapter::waitAllRequests ( ArrayView< Request > requests)

Definition at line 1339 of file MpiAdapter.cc.

◆ waitSomeRequests()

void Arcane::MessagePassing::Mpi::MpiAdapter::waitSomeRequests ( ArrayView< Request > requests,
ArrayView< bool > indexes,
bool is_non_blocking )

Definition at line 1353 of file MpiAdapter.cc.

◆ waitSomeRequestsMPI()

void Arcane::MessagePassing::Mpi::MpiAdapter::waitSomeRequestsMPI ( ArrayView< Request > requests,
ArrayView< bool > indexes,
ArrayView< MPI_Status > mpi_status,
bool is_non_blocking )

Definition at line 1517 of file MpiAdapter.cc.

◆ windowCreator()

MpiMachineShMemWinBaseInternalCreator * Arcane::MessagePassing::Mpi::MpiAdapter::windowCreator ( ) const

Definition at line 1780 of file MpiAdapter.cc.

Member Data Documentation

◆ m_comm_rank

int Arcane::MessagePassing::Mpi::MpiAdapter::m_comm_rank = A_PROC_NULL_RANK
private

Definition at line 228 of file MpiAdapter.h.

◆ m_comm_size

int Arcane::MessagePassing::Mpi::MpiAdapter::m_comm_size = 0
private

Definition at line 229 of file MpiAdapter.h.

◆ m_communicator

MPI Communicator.

Definition at line 227 of file MpiAdapter.h.

◆ m_empty_request1

Empty requests. See MpiAdapter.cc for more information.

Definition at line 235 of file MpiAdapter.h.

◆ m_empty_request2

MPI_Request Arcane::MessagePassing::Mpi::MpiAdapter::m_empty_request2
private

Definition at line 236 of file MpiAdapter.h.

◆ m_is_allow_null_rank_for_any_source

bool Arcane::MessagePassing::Mpi::MpiAdapter::m_is_allow_null_rank_for_any_source = true
private

Definition at line 246 of file MpiAdapter.h.

◆ m_is_trace

bool Arcane::MessagePassing::Mpi::MpiAdapter::m_is_trace = false
private

Definition at line 232 of file MpiAdapter.h.

◆ m_metric_collector

ITimeMetricCollector* Arcane::MessagePassing::Mpi::MpiAdapter::m_metric_collector = nullptr
private

Definition at line 226 of file MpiAdapter.h.

◆ m_mpi_lock

MpiLock* Arcane::MessagePassing::Mpi::MpiAdapter::m_mpi_lock = nullptr
private

Definition at line 224 of file MpiAdapter.h.

◆ m_mpi_prof

IMpiProfiling* Arcane::MessagePassing::Mpi::MpiAdapter::m_mpi_prof = nullptr
private

Definition at line 225 of file MpiAdapter.h.

◆ m_nb_all_reduce

Int64 Arcane::MessagePassing::Mpi::MpiAdapter::m_nb_all_reduce = 0
private

Definition at line 230 of file MpiAdapter.h.

◆ m_nb_reduce

Int64 Arcane::MessagePassing::Mpi::MpiAdapter::m_nb_reduce = 0
private

Definition at line 231 of file MpiAdapter.h.

◆ m_recv_buffer_for_empty_request

int Arcane::MessagePassing::Mpi::MpiAdapter::m_recv_buffer_for_empty_request[1]
private

Definition at line 237 of file MpiAdapter.h.

◆ m_recv_buffer_for_empty_request2

int Arcane::MessagePassing::Mpi::MpiAdapter::m_recv_buffer_for_empty_request2[1]
private

Definition at line 239 of file MpiAdapter.h.

◆ m_request_set

RequestSet* Arcane::MessagePassing::Mpi::MpiAdapter::m_request_set = nullptr
private

Definition at line 233 of file MpiAdapter.h.

◆ m_send_buffer_for_empty_request2

int Arcane::MessagePassing::Mpi::MpiAdapter::m_send_buffer_for_empty_request2[1]
private

Definition at line 238 of file MpiAdapter.h.

◆ m_stat

IStat* Arcane::MessagePassing::Mpi::MpiAdapter::m_stat = nullptr
private

Definition at line 223 of file MpiAdapter.h.

◆ m_window_creator

Ref<MpiMachineShMemWinBaseInternalCreator> Arcane::MessagePassing::Mpi::MpiAdapter::m_window_creator
private

Definition at line 248 of file MpiAdapter.h.


The documentation for this class was generated from the following files: