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

Class allowing the calculation and storage of grouping information. More...

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

Inheritance diagram for Arcane::GatherGroupInfo:
Collaboration diagram for Arcane::GatherGroupInfo:

Public Member Functions

 GatherGroupInfo (IParallelMng *parallel_mng, bool use_collective_io)
 Constructor.
void computeSize (Int32 nb_elem_in) override
 Method allowing the calculation of grouping information.
void setNeedRecompute () override
 Method allowing a request for recalculation of grouping information. To do this, the method computeSize() must be called again.
bool isComputed () override
 Method allowing determination of whether the method computeSize() has already been called.
Int32 nbElemOutput () override
 Method allowing knowledge of the number of elements that our subdomain must process after reception.
Int32 sizeOfOutput (Int32 sizeof_type) override
 Method allowing knowledge of the size, in bytes, of the set of elements that our subdomain must process after reception.
SmallSpan< Int32nbElemRecvGatherToMasterIO () override
 Method allowing knowledge of the number of elements that each third-party subdomain will send to us.
Int32 nbWriterGlobal () override
 Method allowing knowledge of the number of writing subdomains.
void setCollectiveIO (bool enable)
template<class T>
void computeSizeT (Span< const T > in)
 Method allowing the calculation of grouping information.
template<class T>
void computeSizeT (Span2< const T > in)
 Method allowing the calculation of grouping information.

Private Attributes

IParallelMngm_parallel_mng = nullptr
bool m_use_collective_io = false
UniqueArray< Int32m_nb_elem_recv
Int32 m_nb_elem_output = -1
Int32 m_writer = -1
Int32 m_nb_sender_to_writer = -1
Int32 m_nb_writer_global = -1
bool m_is_computed = false

Friends

class GatherGroup

Detailed Description

Class allowing the calculation and storage of grouping information.

The writers will be the masterIO or the masterParallelIO if m_use_collective_io is true.

Definition at line 122 of file GatherGroup.h.

Constructor & Destructor Documentation

◆ GatherGroupInfo()

Arcane::GatherGroupInfo::GatherGroupInfo ( IParallelMng * parallel_mng,
bool use_collective_io )

Constructor.

Parameters
parallel_mngThe parallelMng containing the masterIO.
use_collective_ioTrue if we want all processes to write (with MPI-IO for example). The writers will therefore be the masterParallelIO. If False, the writer will be masterIO.

Definition at line 124 of file GatherGroup.cc.

Member Function Documentation

◆ computeSize()

void Arcane::GatherGroupInfo::computeSize ( Int32 nb_elem_in)
overridevirtual

Method allowing the calculation of grouping information.

Collective call.

A second call to this method will have no effect, unless the method needRecompute() was called beforehand.

Parameters
nb_elem_inThe number of elements that our subdomain wishes to send to the master.

Implements Arcane::IGatherGroupInfo.

Definition at line 139 of file GatherGroup.cc.

References Arcane::MessagePassing::ReduceSum.

Referenced by computeSizeT(), and computeSizeT().

Here is the caller graph for this function:

◆ computeSizeT() [1/2]

template<class T>
void Arcane::GatherGroupInfo::computeSizeT ( Span2< const T > in)

Method allowing the calculation of grouping information.

Collective call.

A second call to this method will have no effect, unless needRecompute() is called beforehand.

Parameters
inThe view that will be shared.

Definition at line 251 of file GatherGroup.h.

References computeSize(), and Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::dim1Size().

Here is the call graph for this function:

◆ computeSizeT() [2/2]

template<class T>
void Arcane::GatherGroupInfo::computeSizeT ( Span< const T > in)

Method allowing the calculation of grouping information.

Collective call.

A second call to this method will have no effect, unless needRecompute() is called beforehand.

Parameters
inThe view that will be shared.

Definition at line 241 of file GatherGroup.h.

References computeSize(), and Arcane::SpanImpl< T, SizeType, Extent >::size().

Here is the call graph for this function:

◆ isComputed()

bool Arcane::GatherGroupInfo::isComputed ( )
inlineoverridevirtual

Method allowing determination of whether the method computeSize() has already been called.

Implements Arcane::IGatherGroupInfo.

Definition at line 145 of file GatherGroup.h.

Referenced by Arcane::GatherGroup::GatherGroup(), and Arcane::GatherGroup::setGatherGroupInfo().

Here is the caller graph for this function:

◆ nbElemOutput()

Int32 Arcane::GatherGroupInfo::nbElemOutput ( )
inlineoverridevirtual

Method allowing knowledge of the number of elements that our subdomain must process after reception.

Implements Arcane::IGatherGroupInfo.

Definition at line 146 of file GatherGroup.h.

◆ nbElemRecvGatherToMasterIO()

SmallSpan< Int32 > Arcane::GatherGroupInfo::nbElemRecvGatherToMasterIO ( )
overridevirtual

Method allowing knowledge of the number of elements that each third-party subdomain will send to us.

Implements Arcane::IGatherGroupInfo.

Definition at line 190 of file GatherGroup.cc.

◆ nbWriterGlobal()

Int32 Arcane::GatherGroupInfo::nbWriterGlobal ( )
inlineoverridevirtual

Method allowing knowledge of the number of writing subdomains.

Implements Arcane::IGatherGroupInfo.

Definition at line 149 of file GatherGroup.h.

Referenced by Arcane::VtkHdfV2DataWriter::_writeDataSetGeneric().

Here is the caller graph for this function:

◆ setCollectiveIO()

void Arcane::GatherGroupInfo::setCollectiveIO ( bool enable)
inline

Definition at line 153 of file GatherGroup.h.

◆ setNeedRecompute()

void Arcane::GatherGroupInfo::setNeedRecompute ( )
inlineoverridevirtual

Method allowing a request for recalculation of grouping information. To do this, the method computeSize() must be called again.

Implements Arcane::IGatherGroupInfo.

Definition at line 144 of file GatherGroup.h.

◆ sizeOfOutput()

Int32 Arcane::GatherGroupInfo::sizeOfOutput ( Int32 sizeof_type)
inlineoverridevirtual

Method allowing knowledge of the size, in bytes, of the set of elements that our subdomain must process after reception.

Parameters
sizeof_typeThe size of an element.

Implements Arcane::IGatherGroupInfo.

Definition at line 147 of file GatherGroup.h.

◆ GatherGroup

friend class GatherGroup
friend

Definition at line 125 of file GatherGroup.h.

Member Data Documentation

◆ m_is_computed

bool Arcane::GatherGroupInfo::m_is_computed = false
private

Definition at line 190 of file GatherGroup.h.

◆ m_nb_elem_output

Int32 Arcane::GatherGroupInfo::m_nb_elem_output = -1
private

Definition at line 186 of file GatherGroup.h.

◆ m_nb_elem_recv

UniqueArray<Int32> Arcane::GatherGroupInfo::m_nb_elem_recv
private

Definition at line 185 of file GatherGroup.h.

◆ m_nb_sender_to_writer

Int32 Arcane::GatherGroupInfo::m_nb_sender_to_writer = -1
private

Definition at line 188 of file GatherGroup.h.

◆ m_nb_writer_global

Int32 Arcane::GatherGroupInfo::m_nb_writer_global = -1
private

Definition at line 189 of file GatherGroup.h.

◆ m_parallel_mng

IParallelMng* Arcane::GatherGroupInfo::m_parallel_mng = nullptr
private

Definition at line 183 of file GatherGroup.h.

◆ m_use_collective_io

bool Arcane::GatherGroupInfo::m_use_collective_io = false
private

Definition at line 184 of file GatherGroup.h.

◆ m_writer

Int32 Arcane::GatherGroupInfo::m_writer = -1
private

Definition at line 187 of file GatherGroup.h.


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