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

Interface for a message queue with threads. More...

#include <arcane/parallel/mpithread/HybridMessageQueue.h>

Inheritance diagram for Arcane::MessagePassing::HybridMessageQueue:
Collaboration diagram for Arcane::MessagePassing::HybridMessageQueue:

Public Member Functions

 HybridMessageQueue (ISharedMemoryMessageQueue *thread_queue, MpiParallelMng *mpi_pm, Int32 local_nb_rank)
void waitAll (ArrayView< Request > requests)
void waitSome (Int32 rank, ArrayView< Request > requests, ArrayView< bool > requests_done, bool is_non_blocking)
Request addReceive (const PointToPointMessageInfo &message, ReceiveBufferInfo buf)
Request addSend (const PointToPointMessageInfo &message, SendBufferInfo buf)
MessageId probe (const MP::PointToPointMessageInfo &message)
MP::MessageSourceInfo legacyProbe (const MP::PointToPointMessageInfo &message)
const RankTagBuilderrankTagBuilder () 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

Request _addReceiveRankTag (const PointToPointMessageInfo &message, ReceiveBufferInfo buf_info)
Request _addReceiveMessageId (const PointToPointMessageInfo &message, ReceiveBufferInfo buf_info)
void _checkValidRank (MessageRank rank)
void _checkValidSource (const PointToPointMessageInfo &message)
SourceDestinationFullRankInfo _getFullRankInfo (const PointToPointMessageInfo &message)
PointToPointMessageInfo _buildSharedMemoryMessage (const PointToPointMessageInfo &message, const SourceDestinationFullRankInfo &fri)
PointToPointMessageInfo _buildMPIMessage (const PointToPointMessageInfo &message, const SourceDestinationFullRankInfo &fri)
Integer _testOrWaitSome (Int32 rank, ArrayView< Request > requests, ArrayView< bool > requests_done)
MessageId _probe (const MP::PointToPointMessageInfo &message, bool use_message_id)

Private Attributes

ISharedMemoryMessageQueuem_thread_queue
MpiParallelMngm_mpi_parallel_mng
MpiAdapterm_mpi_adapter
Int32 m_local_nb_rank
RankTagBuilder m_rank_tag_builder
Int32 m_debug_level = 0
bool m_is_allow_null_rank_for_any_source = true

Additional Inherited Members

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

Detailed Description

Interface for a message queue with threads.

Warning
All methods of this class must be thread-safe.

Definition at line 206 of file HybridMessageQueue.h.

Constructor & Destructor Documentation

◆ HybridMessageQueue()

Arcane::MessagePassing::HybridMessageQueue::HybridMessageQueue ( ISharedMemoryMessageQueue * thread_queue,
MpiParallelMng * mpi_pm,
Int32 local_nb_rank )

Definition at line 49 of file HybridMessageQueue.cc.

Member Function Documentation

◆ _addReceiveMessageId()

Request Arcane::MessagePassing::HybridMessageQueue::_addReceiveMessageId ( const PointToPointMessageInfo & message,
ReceiveBufferInfo buf_info )
private

Definition at line 311 of file HybridMessageQueue.cc.

◆ _addReceiveRankTag()

Request Arcane::MessagePassing::HybridMessageQueue::_addReceiveRankTag ( const PointToPointMessageInfo & message,
ReceiveBufferInfo buf_info )
private

Definition at line 265 of file HybridMessageQueue.cc.

◆ _buildMPIMessage()

PointToPointMessageInfo Arcane::MessagePassing::HybridMessageQueue::_buildMPIMessage ( const PointToPointMessageInfo & message,
const SourceDestinationFullRankInfo & fri )
private

Definition at line 101 of file HybridMessageQueue.cc.

◆ _buildSharedMemoryMessage()

PointToPointMessageInfo Arcane::MessagePassing::HybridMessageQueue::_buildSharedMemoryMessage ( const PointToPointMessageInfo & message,
const SourceDestinationFullRankInfo & fri )
private

Definition at line 88 of file HybridMessageQueue.cc.

◆ _checkValidRank()

void Arcane::MessagePassing::HybridMessageQueue::_checkValidRank ( MessageRank rank)
private

Definition at line 67 of file HybridMessageQueue.cc.

◆ _checkValidSource()

void Arcane::MessagePassing::HybridMessageQueue::_checkValidSource ( const PointToPointMessageInfo & message)
private

Definition at line 77 of file HybridMessageQueue.cc.

◆ _getFullRankInfo()

SourceDestinationFullRankInfo Arcane::MessagePassing::HybridMessageQueue::_getFullRankInfo ( const PointToPointMessageInfo & message)
inlineprivate

Definition at line 244 of file HybridMessageQueue.h.

◆ _testOrWaitSome()

Integer Arcane::MessagePassing::HybridMessageQueue::_testOrWaitSome ( Int32 rank,
ArrayView< Request > requests,
ArrayView< bool > requests_done )
private

Definition at line 165 of file HybridMessageQueue.cc.

◆ addReceive()

Request Arcane::MessagePassing::HybridMessageQueue::addReceive ( const PointToPointMessageInfo & message,
ReceiveBufferInfo buf )

Definition at line 358 of file HybridMessageQueue.cc.

◆ addSend()

Request Arcane::MessagePassing::HybridMessageQueue::addSend ( const PointToPointMessageInfo & message,
SendBufferInfo buf )

Definition at line 378 of file HybridMessageQueue.cc.

◆ legacyProbe()

MP::MessageSourceInfo Arcane::MessagePassing::HybridMessageQueue::legacyProbe ( const MP::PointToPointMessageInfo & message)

Definition at line 529 of file HybridMessageQueue.cc.

◆ probe()

MP::MessageId Arcane::MessagePassing::HybridMessageQueue::probe ( const MP::PointToPointMessageInfo & message)

Definition at line 427 of file HybridMessageQueue.cc.

◆ rankTagBuilder()

const RankTagBuilder & Arcane::MessagePassing::HybridMessageQueue::rankTagBuilder ( ) const
inline

Definition at line 226 of file HybridMessageQueue.h.

◆ waitAll()

void Arcane::MessagePassing::HybridMessageQueue::waitAll ( ArrayView< Request > requests)

Definition at line 114 of file HybridMessageQueue.cc.

◆ waitSome()

void Arcane::MessagePassing::HybridMessageQueue::waitSome ( Int32 rank,
ArrayView< Request > requests,
ArrayView< bool > requests_done,
bool is_non_blocking )

Definition at line 148 of file HybridMessageQueue.cc.

Member Data Documentation

◆ m_debug_level

Int32 Arcane::MessagePassing::HybridMessageQueue::m_debug_level = 0
private

Definition at line 235 of file HybridMessageQueue.h.

◆ m_is_allow_null_rank_for_any_source

bool Arcane::MessagePassing::HybridMessageQueue::m_is_allow_null_rank_for_any_source = true
private

Definition at line 236 of file HybridMessageQueue.h.

◆ m_local_nb_rank

Int32 Arcane::MessagePassing::HybridMessageQueue::m_local_nb_rank
private

Definition at line 233 of file HybridMessageQueue.h.

◆ m_mpi_adapter

MpiAdapter* Arcane::MessagePassing::HybridMessageQueue::m_mpi_adapter
private

Definition at line 232 of file HybridMessageQueue.h.

◆ m_mpi_parallel_mng

MpiParallelMng* Arcane::MessagePassing::HybridMessageQueue::m_mpi_parallel_mng
private

Definition at line 231 of file HybridMessageQueue.h.

◆ m_rank_tag_builder

RankTagBuilder Arcane::MessagePassing::HybridMessageQueue::m_rank_tag_builder
private

Definition at line 234 of file HybridMessageQueue.h.

◆ m_thread_queue

ISharedMemoryMessageQueue* Arcane::MessagePassing::HybridMessageQueue::m_thread_queue
private

Definition at line 230 of file HybridMessageQueue.h.


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