13#ifndef ARCANE_CORE_INTERNAL_GATHERGROUP_H
14#define ARCANE_CORE_INTERNAL_GATHERGROUP_H
18#include "arcane/core/internal/IGatherGroup.h"
20#include "arcane/utils/Array.h"
125 friend class GatherGroup;
153 void setCollectiveIO(
bool enable) { m_use_collective_io = enable; }
166 void computeSizeT(Span<const T> in);
179 void computeSizeT(Span2<const T> in);
183 IParallelMng* m_parallel_mng =
nullptr;
184 bool m_use_collective_io =
false;
185 UniqueArray<Int32> m_nb_elem_recv;
186 Int32 m_nb_elem_output = -1;
188 Int32 m_nb_sender_to_writer = -1;
189 Int32 m_nb_writer_global = -1;
190 bool m_is_computed =
false;
207 Int32 final_nb_elem = m_gather_group_info->m_nb_elem_output;
226 Int32 final_nb_elem = m_gather_group_info->m_nb_elem_output;
Class representing a classic 2D array.
void resizeNoInit(Int64 new_size)
Resizes only the first dimension, leaving the second dimension unchanged.
Base class for 1D data vectors.
void resizeNoInit(Int64 s)
Resizes without initializing new values.
void clear()
Removes the elements from the array.
const T * data() const
Access to the root of the array without any protection.
Class allowing the calculation and storage of grouping information.
Int32 sizeOfOutput(Int32 sizeof_type) override
Method allowing knowledge of the size, in bytes, of the set of elements that our subdomain must proce...
void computeSizeT(Span< const T > in)
Method allowing the calculation of grouping information.
void setNeedRecompute() override
Method allowing a request for recalculation of grouping information. To do this, the method computeSi...
void computeSize(Int32 nb_elem_in) override
Method allowing the calculation of grouping information.
GatherGroupInfo(IParallelMng *parallel_mng, bool use_collective_io)
Constructor.
Int32 nbWriterGlobal() override
Method allowing knowledge of the number of writing subdomains.
Int32 nbElemOutput() override
Method allowing knowledge of the number of elements that our subdomain must process after reception.
bool isComputed() override
Method allowing determination of whether the method computeSize() has already been called.
GatherGroup()
Constructor. For the object to be usable, it is necessary to call setGatherGroupInfo().
bool isNeedGather() override
Method allowing determination of whether the grouping needs to be performed or if the data can be wri...
void gatherToMasterIOT(Span< const T > in, Array< T > &out)
Method allowing the grouping of data from several sub-domains onto one or more sub-domains.
void gatherToMasterIO(Int64 sizeof_elem, Span< const Byte > in, Span< Byte > out) override
Method allowing the grouping of data from multiple subdomains onto one or more subdomains.
void setGatherGroupInfo(GatherGroupInfo *gather_group_info)
Method allowing the definition of grouping information.
GatherGroup(GatherGroupInfo *gather_group_info)
Constructor.
Interface class allowing the calculation and storage of grouping information.
Interface class allowing the grouping of data from certain subdomains onto other subdomains.
Interface of the parallelism manager for a subdomain.
View of an array of elements of type T.
constexpr __host__ __device__ ElementType * data()
Pointer to the allocated memory.
constexpr __host__ __device__ SizeType dim2Size() const
Number of elements in the second dimension.
constexpr __host__ __device__ SizeType totalNbElement() const
Total number of elements.
constexpr __host__ __device__ SizeType dim1Size() const
Number of elements in the first dimension.
View for a 2D array whose size is an 'Int64'.
constexpr __host__ __device__ pointer data() const noexcept
Pointer to the start of the view.
constexpr __host__ __device__ SizeType size() const noexcept
Returns the size of the array.
constexpr __host__ __device__ SizeType sizeBytes() const noexcept
Returns the size of the array in bytes.
View of an array of elements of type T.
constexpr __host__ __device__ ElementType * data()
Pointer to the allocated memory.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
std::int64_t Int64
Signed integer type of 64 bits.
unsigned char Byte
Type of a byte.
std::int32_t Int32
Signed integer type of 32 bits.