Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::MpiParallelMng::Impl Class Reference
Inheritance diagram for Arcane::MpiParallelMng::Impl:
Collaboration diagram for Arcane::MpiParallelMng::Impl:

Public Member Functions

 Impl (MpiParallelMng *pm)
Int32 masterParallelIORank () const override
Int32 nbSendersToMasterParallelIO () const override
void initializeWindowCreator () override
 Method allowing the initialization of the windowCreator specific to the implementation.
bool isMachineShMemWinAvailable () override
 Method allowing to know if shared memory mode is supported.
Ref< IContigMachineShMemWinBaseInternalcreateContigMachineShMemWinBase (Int64 sizeof_segment, Int32 sizeof_type) override
 Method allowing the creation of a memory window on the node.
Ref< IMachineShMemWinBaseInternalcreateMachineShMemWinBase (Int64 sizeof_segment, Int32 sizeof_type) override
 Method allowing the creation of a dynamic memory window on the node.
MemoryAllocationOptions machineShMemWinMemoryAllocator () override
 Method allowing retrieval of a shared memory allocator.
ConstArrayView< Int32machineRanks () override
 Method allowing retrieval of the ranks of the sub-domains of the computing node.
void machineBarrier () override
 Method allowing a barrier for the sub-domains of the computing node.
Public Member Functions inherited from Arcane::ParallelMngInternal
 ParallelMngInternal (ParallelMngDispatcher *pm)
Runner runner () const override
 Default runner. Can be null.
RunQueue queue () const override
 Default queue for messages. Can be null.
bool isAcceleratorAware () const override
 Indicates if the implementation handles accelerators.
Ref< IParallelMngcreateSubParallelMngRef (Int32 color, Int32 key) override
 Creates a sub IParallelMng similar to MPI_Comm_split.
void setDefaultRunner (const Runner &runner) override
Int32 masterParallelIORank () const override
Int32 nbSendersToMasterParallelIO () const override
void initializeWindowCreator () override
 Method allowing the initialization of the windowCreator specific to the implementation.
bool isMachineShMemWinAvailable () override
 Method allowing to know if shared memory mode is supported.
Ref< MessagePassing::IContigMachineShMemWinBaseInternalcreateContigMachineShMemWinBase (Int64 sizeof_segment, Int32 sizeof_type) override
 Method allowing the creation of a memory window on the node.
Ref< MessagePassing::IMachineShMemWinBaseInternalcreateMachineShMemWinBase (Int64 sizeof_segment, Int32 sizeof_type) override
 Method allowing the creation of a dynamic memory window on the node.
MemoryAllocationOptions machineShMemWinMemoryAllocator () override
 Method allowing retrieval of a shared memory allocator.
ConstArrayView< Int32machineRanks () override
 Method allowing retrieval of the ranks of the sub-domains of the computing node.
void machineBarrier () override
 Method allowing a barrier for the sub-domains of the computing node.

Private Attributes

MpiParallelMng * m_parallel_mng
Ref< MachineShMemWinMemoryAllocatorm_alloc
Int8 m_shmem_available = 0

Detailed Description

Definition at line 373 of file MpiParallelMng.cc.

Constructor & Destructor Documentation

◆ Impl()

Arcane::MpiParallelMng::Impl::Impl ( MpiParallelMng * pm)
inlineexplicit

Definition at line 378 of file MpiParallelMng.cc.

Member Function Documentation

◆ createContigMachineShMemWinBase()

Ref< IContigMachineShMemWinBaseInternal > Arcane::MpiParallelMng::Impl::createContigMachineShMemWinBase ( Int64 sizeof_segment,
Int32 sizeof_type )
inlineoverridevirtual

Method allowing the creation of a memory window on the node.

Collective call.

Parameters
sizeof_segmentThe size of our segment (in bytes).
sizeof_typeThe size of a segment element (in bytes).
Returns
A reference to the new window.

Implements Arcane::IParallelMngInternal.

Definition at line 417 of file MpiParallelMng.cc.

References Arcane::makeRef().

Here is the call graph for this function:

◆ createMachineShMemWinBase()

Ref< IMachineShMemWinBaseInternal > Arcane::MpiParallelMng::Impl::createMachineShMemWinBase ( Int64 sizeof_segment,
Int32 sizeof_type )
inlineoverridevirtual

Method allowing the creation of a dynamic memory window on the node.

Collective call.

Parameters
sizeof_segmentThe initial size of our segment (in bytes).
sizeof_typeThe size of a segment element (in bytes).
Returns
A reference to the new window.

Implements Arcane::IParallelMngInternal.

Definition at line 422 of file MpiParallelMng.cc.

References Arcane::makeRef().

Here is the call graph for this function:

◆ initializeWindowCreator()

void Arcane::MpiParallelMng::Impl::initializeWindowCreator ( )
inlineoverridevirtual

Method allowing the initialization of the windowCreator specific to the implementation.

Collective call.

Implements Arcane::IParallelMngInternal.

Definition at line 391 of file MpiParallelMng.cc.

◆ isMachineShMemWinAvailable()

bool Arcane::MpiParallelMng::Impl::isMachineShMemWinAvailable ( )
inlineoverridevirtual

Method allowing to know if shared memory mode is supported.

Collective call.

Implements Arcane::IParallelMngInternal.

Definition at line 397 of file MpiParallelMng.cc.

◆ machineBarrier()

void Arcane::MpiParallelMng::Impl::machineBarrier ( )
inlineoverridevirtual

Method allowing a barrier for the sub-domains of the computing node.

Implements Arcane::IParallelMngInternal.

Definition at line 437 of file MpiParallelMng.cc.

◆ machineRanks()

ConstArrayView< Int32 > Arcane::MpiParallelMng::Impl::machineRanks ( )
inlineoverridevirtual

Method allowing retrieval of the ranks of the sub-domains of the computing node.

Non-collective call.

Implements Arcane::IParallelMngInternal.

Definition at line 432 of file MpiParallelMng.cc.

◆ machineShMemWinMemoryAllocator()

MemoryAllocationOptions Arcane::MpiParallelMng::Impl::machineShMemWinMemoryAllocator ( )
inlineoverridevirtual

Method allowing retrieval of a shared memory allocator.

Implements Arcane::IParallelMngInternal.

Definition at line 427 of file MpiParallelMng.cc.

◆ masterParallelIORank()

Int32 Arcane::MpiParallelMng::Impl::masterParallelIORank ( ) const
inlineoverridevirtual

Gives the writer in the case where parallel writing is possible (with MPI-IO for example).

Implements Arcane::IParallelMngInternal.

Definition at line 388 of file MpiParallelMng.cc.

◆ nbSendersToMasterParallelIO()

Int32 Arcane::MpiParallelMng::Impl::nbSendersToMasterParallelIO ( ) const
inlineoverridevirtual

Gives the number of procs that will send data to masterParallelIORank().

Implements Arcane::IParallelMngInternal.

Definition at line 389 of file MpiParallelMng.cc.

Member Data Documentation

◆ m_alloc

Ref<MachineShMemWinMemoryAllocator> Arcane::MpiParallelMng::Impl::m_alloc
private

Definition at line 445 of file MpiParallelMng.cc.

◆ m_parallel_mng

MpiParallelMng* Arcane::MpiParallelMng::Impl::m_parallel_mng
private

Definition at line 444 of file MpiParallelMng.cc.

◆ m_shmem_available

Int8 Arcane::MpiParallelMng::Impl::m_shmem_available = 0
private

Definition at line 450 of file MpiParallelMng.cc.


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