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

Internal part of IParallelMng. More...

#include <arcane/core/internal/ParallelMngInternal.h>

Inheritance diagram for Arcane::ParallelMngInternal:
Collaboration diagram for Arcane::ParallelMngInternal:

Public Member Functions

 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

ParallelMngDispatcherm_parallel_mng = nullptr
Runner m_runner
RunQueue m_queue
bool m_is_accelerator_aware_disabled = false

Detailed Description

Internal part of IParallelMng.

Definition at line 40 of file ParallelMngInternal.h.

Constructor & Destructor Documentation

◆ ParallelMngInternal()

Arcane::ParallelMngInternal::ParallelMngInternal ( ParallelMngDispatcher * pm)
explicit

Definition at line 35 of file ParallelMngInternal.cc.

Member Function Documentation

◆ createContigMachineShMemWinBase()

Ref< MessagePassing::IContigMachineShMemWinBaseInternal > Arcane::ParallelMngInternal::createContigMachineShMemWinBase ( Int64 sizeof_segment,
Int32 sizeof_type )
overridevirtual

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 146 of file ParallelMngInternal.cc.

References ARCANE_THROW.

◆ createMachineShMemWinBase()

Ref< MessagePassing::IMachineShMemWinBaseInternal > Arcane::ParallelMngInternal::createMachineShMemWinBase ( Int64 sizeof_segment,
Int32 sizeof_type )
overridevirtual

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 156 of file ParallelMngInternal.cc.

References ARCANE_THROW.

◆ createSubParallelMngRef()

Ref< IParallelMng > Arcane::ParallelMngInternal::createSubParallelMngRef ( Int32 color,
Int32 key )
overridevirtual

Creates a sub IParallelMng similar to MPI_Comm_split.

Implements Arcane::IParallelMngInternal.

Definition at line 119 of file ParallelMngInternal.cc.

◆ initializeWindowCreator()

void Arcane::ParallelMngInternal::initializeWindowCreator ( )
overridevirtual

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

Collective call.

Implements Arcane::IParallelMngInternal.

Definition at line 128 of file ParallelMngInternal.cc.

References ARCANE_THROW.

◆ isAcceleratorAware()

bool Arcane::ParallelMngInternal::isAcceleratorAware ( ) const
overridevirtual

Indicates if the implementation handles accelerators.

If so, the accelerator memory can be used directly in MPI calls, which avoids potential re-copies.

Implements Arcane::IParallelMngInternal.

Definition at line 66 of file ParallelMngInternal.cc.

◆ isMachineShMemWinAvailable()

bool Arcane::ParallelMngInternal::isMachineShMemWinAvailable ( )
overridevirtual

Method allowing to know if shared memory mode is supported.

Collective call.

Implements Arcane::IParallelMngInternal.

Definition at line 137 of file ParallelMngInternal.cc.

◆ machineBarrier()

void Arcane::ParallelMngInternal::machineBarrier ( )
overridevirtual

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

Implements Arcane::IParallelMngInternal.

Definition at line 184 of file ParallelMngInternal.cc.

References ARCANE_THROW.

◆ machineRanks()

ConstArrayView< Int32 > Arcane::ParallelMngInternal::machineRanks ( )
overridevirtual

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

Non-collective call.

Implements Arcane::IParallelMngInternal.

Definition at line 175 of file ParallelMngInternal.cc.

References ARCANE_THROW.

◆ machineShMemWinMemoryAllocator()

MemoryAllocationOptions Arcane::ParallelMngInternal::machineShMemWinMemoryAllocator ( )
overridevirtual

Method allowing retrieval of a shared memory allocator.

Implements Arcane::IParallelMngInternal.

Definition at line 166 of file ParallelMngInternal.cc.

References ARCANE_THROW.

◆ masterParallelIORank()

Int32 Arcane::ParallelMngInternal::masterParallelIORank ( ) const
overridevirtual

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

Implements Arcane::IParallelMngInternal.

Definition at line 101 of file ParallelMngInternal.cc.

◆ nbSendersToMasterParallelIO()

Int32 Arcane::ParallelMngInternal::nbSendersToMasterParallelIO ( ) const
overridevirtual

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

Implements Arcane::IParallelMngInternal.

Definition at line 110 of file ParallelMngInternal.cc.

◆ queue()

RunQueue Arcane::ParallelMngInternal::queue ( ) const
overridevirtual

Default queue for messages. Can be null.

Implements Arcane::IParallelMngInternal.

Definition at line 57 of file ParallelMngInternal.cc.

◆ runner()

Runner Arcane::ParallelMngInternal::runner ( ) const
overridevirtual

Default runner. Can be null.

Implements Arcane::IParallelMngInternal.

Definition at line 48 of file ParallelMngInternal.cc.

◆ setDefaultRunner()

void Arcane::ParallelMngInternal::setDefaultRunner ( const Runner & runner)
overridevirtual

Implements Arcane::IParallelMngInternal.

Definition at line 81 of file ParallelMngInternal.cc.

Member Data Documentation

◆ m_is_accelerator_aware_disabled

bool Arcane::ParallelMngInternal::m_is_accelerator_aware_disabled = false
private

Definition at line 71 of file ParallelMngInternal.h.

◆ m_parallel_mng

ParallelMngDispatcher* Arcane::ParallelMngInternal::m_parallel_mng = nullptr
private

Definition at line 68 of file ParallelMngInternal.h.

◆ m_queue

RunQueue Arcane::ParallelMngInternal::m_queue
private

Definition at line 70 of file ParallelMngInternal.h.

◆ m_runner

Runner Arcane::ParallelMngInternal::m_runner
private

Definition at line 69 of file ParallelMngInternal.h.


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