15#ifndef ARCANE_CORE_INTERNAL_GATHERGROUP_H
16#define ARCANE_CORE_INTERNAL_GATHERGROUP_H
21#include "arcane/core/internal/IGatherGroup.h"
23#include "arcane/utils/Array.h"
129 friend class GatherGroup;
157 void setCollectiveIO(
bool enable) { m_use_collective_io = enable; }
170 void computeSizeT(Span<const T> in);
183 void computeSizeT(Span2<const T> in);
187 IParallelMng* m_parallel_mng =
nullptr;
188 bool m_use_collective_io =
false;
189 UniqueArray<Int32> m_nb_elem_recv;
190 Int32 m_nb_elem_output = -1;
192 Int32 m_nb_sender_to_writer = -1;
193 Int32 m_nb_writer_global = -1;
194 bool m_is_computed =
false;
211 Int32 final_nb_elem = m_gather_group_info->m_nb_elem_output;
230 Int32 final_nb_elem = m_gather_group_info->m_nb_elem_output;
Tableau 2D d'items de types quelconques.
void resizeNoInit(Int64 new_size)
Redimensionne uniquement la première dimension en laissant la deuxième à l'identique.
Tableau d'items de types quelconques.
void clear()
Supprime les éléments du tableau.
void resizeNoInit(Int64 s)
Redimensionne sans initialiser les nouvelles valeurs.
const T * data() const
Accès à la racine du tableau hors toute protection.
Classe permettant de calculer et de conserver les informations de regroupements.
Int32 sizeOfOutput(Int32 sizeof_type) override
Méthode permettant de connaitre la taille, en octet, de l'ensemble des éléments que notre sous-domain...
void computeSizeT(Span< const T > in)
Méthode permettant de calculer les informations de regroupements.
void setNeedRecompute() override
Méthode permettant de demander un recalcul des informations de regroupements. Pour cela,...
void computeSize(Int32 nb_elem_in) override
Méthode permettant de calculer les informations de regroupements.
GatherGroupInfo(IParallelMng *parallel_mng, bool use_collective_io)
Constructeur.
Int32 nbWriterGlobal() override
Méthode pemettant de connaitre le nombre de sous-domaines écrivains.
Int32 nbElemOutput() override
Méthode permettant de connaitre le nombre d'éléments que notre sous-domaine devra traiter après récep...
bool isComputed() override
Méthode permettant de savoir si la méthode computeSize() a déjà été appelée.
GatherGroup()
Constructeur. Pour que l'objet soit utilisable, il est nécessaire d'appeler setGatherGroupInfo().
bool isNeedGather() override
Méthode permettant de savoir si l'on doit effectuer le regroupement ou si l'on peut directement écrir...
void gatherToMasterIOT(Span< const T > in, Array< T > &out)
Méthode permettant de regrouper les données de plusieurs sous-domaines sur un ou plusieurs sous-domai...
void gatherToMasterIO(Int64 sizeof_elem, Span< const Byte > in, Span< Byte > out) override
Méthode permettant de regrouper les données de plusieurs sous-domaines sur un ou plusieurs sous-domai...
void setGatherGroupInfo(GatherGroupInfo *gather_group_info)
Méthode permettant de définir les informations de regroupement.
GatherGroup(GatherGroupInfo *gather_group_info)
Constructeur.
Interface de classe permettant de calculer et de conserver les informations de regroupements.
Interface de classe permettant de regrouper les données de certains sous-domaines sur d'autres sous-d...
Interface du gestionnaire de parallélisme pour un sous-domaine.
Vue d'un tableau d'éléments de type T.
constexpr __host__ __device__ ElementType * data()
Pointeur sur la mémoire allouée.
constexpr __host__ __device__ SizeType dim2Size() const
Nombre d'éléments de la deuxième dimension.
constexpr __host__ __device__ SizeType totalNbElement() const
Nombre total d'éléments.
constexpr __host__ __device__ SizeType dim1Size() const
Nombre d'éléments de la première dimension.
Vue pour un tableau 2D dont la taille est un 'Int64'.
constexpr __host__ __device__ pointer data() const noexcept
Pointeur sur le début de la vue.
constexpr __host__ __device__ SizeType size() const noexcept
Retourne la taille du tableau.
constexpr __host__ __device__ SizeType sizeBytes() const noexcept
Retourne la taille du tableau en octets.
Vue d'un tableau d'éléments de type T.
constexpr __host__ __device__ ElementType * data()
Pointeur sur la mémoire allouée.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int64_t Int64
Type entier signé sur 64 bits.
unsigned char Byte
Type d'un octet.
std::int32_t Int32
Type entier signé sur 32 bits.