Arcane  v4.1.8.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
IGatherGroup.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* IGatherGroup.h (C) 2000-2026 */
9/* */
10/* Interface pour gérer les regroupements sur un nombre restreint de */
11/* sous-domaines. */
12/*---------------------------------------------------------------------------*/
13/*---------------------------------------------------------------------------*/
14
15#ifndef ARCANE_CORE_INTERNAL_IGATHERGROUP_H
16#define ARCANE_CORE_INTERNAL_IGATHERGROUP_H
17
18/*---------------------------------------------------------------------------*/
19/*---------------------------------------------------------------------------*/
20
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
26namespace Arcane
27{
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
31
36class ARCANE_CORE_EXPORT IGatherGroup
37{
38
39 public:
40
41 virtual ~IGatherGroup() = default;
42
43 public:
44
55 virtual bool isNeedGather() = 0;
56
68 virtual void gatherToMasterIO(Int64 sizeof_elem, Span<const Byte> in, Span<Byte> out) = 0;
69};
70
71/*---------------------------------------------------------------------------*/
72/*---------------------------------------------------------------------------*/
73
78class ARCANE_CORE_EXPORT IGatherGroupInfo
79{
80 public:
81
82 virtual ~IGatherGroupInfo() = default;
83
84 public:
85
97 virtual void computeSize(Int32 nb_elem_in) = 0;
98
103 virtual void setNeedRecompute() = 0;
104
109 virtual bool isComputed() = 0;
110
115 virtual Int32 nbElemOutput() = 0;
116
123 virtual Int32 sizeOfOutput(Int32 sizeof_type) = 0;
124
130
135 virtual Int32 nbWriterGlobal() = 0;
136};
137
138/*---------------------------------------------------------------------------*/
139/*---------------------------------------------------------------------------*/
140
141} // End namespace Arcane
142
143/*---------------------------------------------------------------------------*/
144/*---------------------------------------------------------------------------*/
145
146#endif
Déclarations des types généraux de Arcane.
Interface de classe permettant de calculer et de conserver les informations de regroupements.
virtual SmallSpan< Int32 > nbElemRecvGatherToMasterIO()=0
Méthode permettant de connaitre le nombre d'éléments que vont nous envoyer chaque sous-domaine tier.
virtual void computeSize(Int32 nb_elem_in)=0
Méthode permettant de calculer les informations de regroupements.
virtual Int32 nbElemOutput()=0
Méthode permettant de connaitre le nombre d'éléments que notre sous-domaine devra traiter après récep...
virtual Int32 sizeOfOutput(Int32 sizeof_type)=0
Méthode permettant de connaitre la taille, en octet, de l'ensemble des éléments que notre sous-domain...
virtual Int32 nbWriterGlobal()=0
Méthode pemettant de connaitre le nombre de sous-domaines écrivains.
virtual void setNeedRecompute()=0
Méthode permettant de demander un recalcul des informations de regroupements. Pour cela,...
virtual bool isComputed()=0
Méthode permettant de savoir si la méthode computeSize() a déjà été appelée.
Interface de classe permettant de regrouper les données de certains sous-domaines sur d'autres sous-d...
virtual void gatherToMasterIO(Int64 sizeof_elem, Span< const Byte > in, Span< Byte > out)=0
Méthode permettant de regrouper les données de plusieurs sous-domaines sur un ou plusieurs sous-domai...
virtual bool isNeedGather()=0
Méthode permettant de savoir si l'on doit effectuer le regroupement ou si l'on peut directement écrir...
Vue d'un tableau d'éléments de type T.
Definition Span.h:801
Vue d'un tableau d'éléments de type T.
Definition Span.h:633
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int64_t Int64
Type entier signé sur 64 bits.
std::int32_t Int32
Type entier signé sur 32 bits.