Arcane  v3.16.8.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
IMachineMemoryWindowBaseInternal.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 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/* IMachineMemoryWindowBaseInternal.h (C) 2000-2025 */
9/* */
10/* Interface de classe permettant de créer une fenêtre mémoire pour un noeud */
11/* de calcul. Cette fenêtre sera contigüe en mémoire. */
12/*---------------------------------------------------------------------------*/
13
14#ifndef ARCCORE_MESSAGEPASSING_INTERNAL_IMACHINEMEMORYWINDOWBASEINTERNAL_H
15#define ARCCORE_MESSAGEPASSING_INTERNAL_IMACHINEMEMORYWINDOWBASEINTERNAL_H
16
17/*---------------------------------------------------------------------------*/
18/*---------------------------------------------------------------------------*/
19
21#include "arccore/collections/Array.h"
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
27{
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
31
39class ARCCORE_MESSAGEPASSING_EXPORT IMachineMemoryWindowBaseInternal
40{
41 public:
42
43 virtual ~IMachineMemoryWindowBaseInternal() = default;
44
45 public:
46
52 virtual Int32 sizeofOneElem() const = 0;
53
60
69
76
83
92
99
110 virtual void resizeSegment(Int64 new_sizeof_segment) = 0;
111
122
127 virtual void barrier() const = 0;
128};
129
130/*---------------------------------------------------------------------------*/
131/*---------------------------------------------------------------------------*/
132
133} // End namespace Arccore::MessagePassing
134
135/*---------------------------------------------------------------------------*/
136/*---------------------------------------------------------------------------*/
137
138#endif
139
Déclarations générales de la composante 'message_passing'.
Vue constante d'un tableau de type T.
Classe permettant de créer une fenêtre mémoire pour un noeud de calcul.
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 ConstArrayView< Int32 > machineRanks() const =0
Méthode permettant d'obtenir les rangs qui possèdent un segment dans la fenêtre.
virtual Span< std::byte > segmentView()=0
Méthode permettant d'obtenir une vue sur son segment.
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 void resizeSegment(Int64 new_sizeof_segment)=0
Méthode permettant de redimensionner les segments de la fenêtre.
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< const std::byte > segmentConstView() const =0
Méthode permettant d'obtenir une vue sur son segment.
virtual Span< std::byte > windowView()=0
Méthode permettant d'obtenir une vue sur toute la fenêtre.
virtual Int32 sizeofOneElem() const =0
Méthode permettant d'obtenir la taille d'un élement de la fenêtre.
virtual Span< const std::byte > windowConstView() const =0
Méthode permettant d'obtenir une vue sur toute la fenêtre.
Vue d'un tableau d'éléments de type T.
Definition Span.h:513
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.