Arcane  v4.1.7.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
IMachineShMemWinBaseInternal.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/* IMachineShMemWinBaseInternal.h (C) 2000-2026 */
9/* */
10/* Interface de classe permettant de créer des fenêtres mémoires pour un */
11/* noeud de calcul. */
12/* Les segments de ces fenêtres ne sont pas contigüs en mémoire et peuvent */
13/* être redimensionnés. */
14/*---------------------------------------------------------------------------*/
15
16#ifndef ARCCORE_MESSAGEPASSING_INTERNAL_IMACHINESHMEMWINBASEINTERNAL_H
17#define ARCCORE_MESSAGEPASSING_INTERNAL_IMACHINESHMEMWINBASEINTERNAL_H
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
23#include "arccore/collections/Array.h"
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
29{
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
33
53class ARCCORE_MESSAGEPASSING_EXPORT IMachineShMemWinBaseInternal
54{
55 public:
56
57 virtual ~IMachineShMemWinBaseInternal() = default;
58
59 public:
60
68 virtual Int32 sizeofOneElem() const = 0;
69
79
84 virtual void barrier() const = 0;
85
94
105
114
125
141 virtual void add(Span<const std::byte> elem) = 0;
142
146 virtual void add() = 0;
147
168 virtual void addToAnotherSegment(Int32 rank, Span<const std::byte> elem) = 0;
169
173 virtual void addToAnotherSegment() = 0;
174
199 virtual void reserve(Int64 new_capacity) = 0;
200
204 virtual void reserve() = 0;
205
220 virtual void resize(Int64 new_size) = 0;
221
225 virtual void resize() = 0;
226
233 virtual void shrink() = 0;
234};
235
236/*---------------------------------------------------------------------------*/
237/*---------------------------------------------------------------------------*/
238
239} // namespace Arcane::MessagePassing
240
241/*---------------------------------------------------------------------------*/
242/*---------------------------------------------------------------------------*/
243
244#endif
Déclarations générales de la composante 'message_passing'.
Vue constante d'un tableau de type T.
Classe permettant de créer des fenêtres mémoires pour un noeud de calcul.
virtual ConstArrayView< Int32 > machineRanks() const =0
Méthode permettant d'obtenir les rangs qui possèdent un segment dans la fenêtre.
virtual Span< const std::byte > segmentConstView() const =0
Méthode permettant d'obtenir une vue sur notre segment.
virtual Int32 sizeofOneElem() const =0
Méthode permettant d'obtenir la taille d'un élement de la fenêtre.
virtual void addToAnotherSegment(Int32 rank, Span< const std::byte > elem)=0
Méthode permettant d'ajouter des éléments dans le segment d'un autre sous-domaine.
virtual void shrink()=0
Méthode permettant de réduire l'espace mémoire réservé pour les segments au minimum nécessaire.
virtual void barrier() const =0
Méthode permettant d'attendre que tous les processus/threads du noeud appellent cette méthode pour co...
virtual Span< std::byte > segmentView(Int32 rank)=0
Méthode permettant d'obtenir une vue sur le segment d'un autre sous-domaine du noeud.
virtual Span< std::byte > segmentView()=0
Méthode permettant d'obtenir une vue sur notre segment.
virtual Span< const std::byte > segmentConstView(Int32 rank) const =0
Méthode permettant d'obtenir une vue sur le segment d'un autre sous-domaine du noeud.
virtual void reserve(Int64 new_capacity)=0
Méthode permettant de réserver de l'espace mémoire dans notre segment.
virtual void add(Span< const std::byte > elem)=0
Méthode permettant d'ajouter des élements dans notre segment.
virtual void resize(Int64 new_size)=0
Méthode permettant de redimensionner notre segment.
Vue d'un tableau d'éléments de type T.
Definition Span.h:633
Déclarations des types et méthodes utilisés par les mécanismes d'échange de messages.
std::int64_t Int64
Type entier signé sur 64 bits.
std::int32_t Int32
Type entier signé sur 32 bits.