Arcane  v4.1.4.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
DynamicMachineMemoryWindowVariableBase.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/* DynamicMachineMemoryWindowVariableBase.h (C) 2000-2026 */
9/* */
10/* Allocateur mémoire utilisant la classe DynamicMachineMemoryWindowBase. */
11/*---------------------------------------------------------------------------*/
12
13#ifndef ARCANE_CORE_DYNAMICMACHINEMEMORYWINDOWVARIABLEBASE_H
14#define ARCANE_CORE_DYNAMICMACHINEMEMORYWINDOWVARIABLEBASE_H
15
16/*---------------------------------------------------------------------------*/
17/*---------------------------------------------------------------------------*/
18
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30/*!
31 * \brief Classe permettant d'accéder à la partie en mémoire partagée entre
32 * sous-domaines d'un même noeud d'une variable.
33 *
34 * Il est nécessaire que cette variable soit allouée en mémoire partagée avec
35 * la propriété "IVariable::PShMem".
36 */
38{
39
40 public:
41
42 /*!
43 * \brief Constructeur.
44 * \param var Variable ayant la propriété "IVariable::PShMem".
45 */
47
48 public:
49
50 /*!
51 * \brief Méthode permettant d'obtenir les rangs qui possèdent un segment
52 * dans la fenêtre.
53 *
54 * Appel non collectif.
55 *
56 * \return Une vue contenant les ids des rangs.
57 */
59
60 /*!
61 * \brief Méthode permettant d'attendre que tous les processus/threads
62 * du noeud appellent cette méthode pour continuer l'exécution.
63 */
64 void barrier() const;
65
66 /*!
67 * \brief Méthode permettant d'obtenir une vue sur notre segment.
68 *
69 * Appel non collectif.
70 *
71 * \return Une vue.
72 */
74
75 /*!
76 * \brief Méthode permettant d'obtenir une vue sur le segment d'un
77 * autre sous-domaine du noeud.
78 *
79 * Appel non collectif.
80 *
81 * \param rank Le rang du sous-domaine.
82 * \return Une vue.
83 */
85
86 private:
87
88 IVariable* m_var;
89};
90
91/*---------------------------------------------------------------------------*/
92/*---------------------------------------------------------------------------*/
93
94} // End namespace Arcane
95
96/*---------------------------------------------------------------------------*/
97/*---------------------------------------------------------------------------*/
98
99#endif
Déclarations des types généraux de Arcane.
Vue constante d'un tableau de type T.
ConstArrayView< Int32 > machineRanks() const
Méthode permettant d'obtenir les rangs qui possèdent un segment dans la fenêtre.
Span< std::byte > segmentView() const
Méthode permettant d'obtenir une vue sur notre segment.
void barrier() const
Méthode permettant d'attendre que tous les processus/threads du noeud appellent cette méthode pour co...
Interface d'une variable.
Definition IVariable.h:39
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::int32_t Int32
Type entier signé sur 32 bits.