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

Redistribute graph data to another "communicator". More...

#include <arcane/std/GraphDistributor.h>

Collaboration diagram for Arcane::GraphDistributor:

Public Member Functions

 GraphDistributor (IParallelMng *pm)
void initWithOneRankPerNode (bool allow_only_one_rank)
 Automatic distribution : one partitioning process per node.
void initWithMaxRank (Int32 targetSize)
Int32 size () const
bool contribute () const
template<typename DataT>
SharedArray< DataT > convert (ConstArrayView< DataT > in, Array< DataT > *pattern=nullptr, bool is_indirection=false) const
template<typename DataT>
SharedArray< DataT > convertBack (ConstArrayView< DataT > in, Int32 nRecv) const
IParallelMngsubParallelMng () const
MPI_Comm getCommunicator () const
IParallelMngparallelManager () const

Private Attributes

IParallelMngm_pm_ini = nullptr
Ref< IParallelMngm_pm_sub
Int32 m_targetSize = -1
Int32 m_targetRank = -1
bool m_skip = false
bool m_contribute = false
bool m_is_init = false

Detailed Description

Redistribute graph data to another "communicator".

\abstract By redistributing graph data, we can use smaller communicators to compute partitioning, which is better for efficiency.

The class must be initialized by calling either initWithOneRankPerNode() or initWithMaxRank().

Definition at line 43 of file GraphDistributor.h.

Constructor & Destructor Documentation

◆ GraphDistributor()

Arcane::GraphDistributor::GraphDistributor ( IParallelMng * pm)
inline

Definition at line 47 of file GraphDistributor.h.

Member Function Documentation

◆ contribute()

bool Arcane::GraphDistributor::contribute ( ) const
inline

Definition at line 133 of file GraphDistributor.h.

◆ convert()

template<typename DataT>
SharedArray< DataT > Arcane::GraphDistributor::convert ( ConstArrayView< DataT > in,
Array< DataT > * pattern = nullptr,
bool is_indirection = false ) const
inline

Definition at line 137 of file GraphDistributor.h.

◆ convertBack()

template<typename DataT>
SharedArray< DataT > Arcane::GraphDistributor::convertBack ( ConstArrayView< DataT > in,
Int32 nRecv ) const
inline

Definition at line 223 of file GraphDistributor.h.

◆ getCommunicator()

MPI_Comm Arcane::GraphDistributor::getCommunicator ( ) const
inline

Definition at line 276 of file GraphDistributor.h.

◆ initWithMaxRank()

void Arcane::GraphDistributor::initWithMaxRank ( Int32 targetSize)
inline

Definition at line 97 of file GraphDistributor.h.

◆ initWithOneRankPerNode()

void Arcane::GraphDistributor::initWithOneRankPerNode ( bool allow_only_one_rank)
inline

Automatic distribution : one partitioning process per node.

Definition at line 57 of file GraphDistributor.h.

References Arcane::ParallelMngUtils::createTopologyRef(), and Arcane::ConstArrayView< T >::size().

Referenced by Arcane::MetisMeshPartitioner::_partitionMesh().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ parallelManager()

IParallelMng * Arcane::GraphDistributor::parallelManager ( ) const
inline

Definition at line 285 of file GraphDistributor.h.

◆ size()

Int32 Arcane::GraphDistributor::size ( ) const
inline

Definition at line 131 of file GraphDistributor.h.

◆ subParallelMng()

IParallelMng * Arcane::GraphDistributor::subParallelMng ( ) const
inline

Definition at line 265 of file GraphDistributor.h.

Member Data Documentation

◆ m_contribute

bool Arcane::GraphDistributor::m_contribute = false
private

Definition at line 297 of file GraphDistributor.h.

◆ m_is_init

bool Arcane::GraphDistributor::m_is_init = false
private

Definition at line 298 of file GraphDistributor.h.

◆ m_pm_ini

IParallelMng* Arcane::GraphDistributor::m_pm_ini = nullptr
private

Definition at line 292 of file GraphDistributor.h.

◆ m_pm_sub

Ref<IParallelMng> Arcane::GraphDistributor::m_pm_sub
private

Definition at line 293 of file GraphDistributor.h.

◆ m_skip

bool Arcane::GraphDistributor::m_skip = false
private

Definition at line 296 of file GraphDistributor.h.

◆ m_targetRank

Int32 Arcane::GraphDistributor::m_targetRank = -1
private

Definition at line 295 of file GraphDistributor.h.

◆ m_targetSize

Int32 Arcane::GraphDistributor::m_targetSize = -1
private

Definition at line 294 of file GraphDistributor.h.


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