Arcane  v4.1.5.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
MachineShMemWinVariable.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/* MachineShMemWinVariable.h (C) 2000-2026 */
9/* */
10/* Classe permettant d'accéder à la partie en mémoire partagée d'une */
11/* variable. */
12/*---------------------------------------------------------------------------*/
13
14#ifndef ARCANE_CORE_MACHINESHMEMWINVARIABLE_H
15#define ARCANE_CORE_MACHINESHMEMWINVARIABLE_H
16
17/*---------------------------------------------------------------------------*/
18/*---------------------------------------------------------------------------*/
19
21
22#include "arcane/core/MachineShMemWinVariableBase.h"
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27namespace Arcane
28{
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32
42template <class DataType>
44{
45
46 public:
47
52 template <class ItemType>
54 : m_base(var.variable())
55 {}
56
61 template <class ItemType>
63 : m_base(var.variable())
64 {}
65
66 public:
67
77 {
78 return m_base.machineRanks();
79 }
80
85 void barrier() const
86 {
87 m_base.barrier();
88 }
89
100 {
101 return asSpan<DataType>(m_base.segmentView());
102 }
103
114 {
115 return asSpan<DataType>(m_base.segmentView(rank));
116 }
117
118 private:
119
121};
122
123/*---------------------------------------------------------------------------*/
124/*---------------------------------------------------------------------------*/
125
126} // End namespace Arcane
127
128/*---------------------------------------------------------------------------*/
129/*---------------------------------------------------------------------------*/
130
131#endif
Déclarations des types généraux de Arcane.
Vue constante d'un tableau de type T.
Classe permettant d'accéder à la partie en mémoire partagée entre sous-domaines d'un même noeud d'une...
void barrier() const
Méthode permettant d'attendre que tous les processus/threads du noeud appellent cette méthode pour co...
MachineShMemWinVariable(MeshVariableArrayRefT< ItemType, DataType > var)
Constructeur.
Span< DataType > segmentView(Int32 rank) const
Méthode permettant d'obtenir une vue sur le segment d'un autre sous-domaine du noeud.
MachineShMemWinVariable(MeshVariableScalarRefT< ItemType, DataType > var)
Constructeur.
Span< DataType > segmentView() const
Méthode permettant d'obtenir une vue sur notre segment.
ConstArrayView< Int32 > machineRanks() const
Méthode permettant d'obtenir les rangs qui possèdent un segment dans la fenêtre.
Variable tableau sur un type d'entité du maillage.
Variable scalaire sur un type d'entité du maillage.
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 -*-
Span< DataType > asSpan(Span< std::byte, Extent > bytes)
Converti un Span<std::byte> en un Span<DataType>.
Definition Span.h:1114
std::int32_t Int32
Type entier signé sur 32 bits.