15#include "arcane/core/MachineShMemWinBase.h"
17#include "arcane/utils/NumericTypes.h"
19#include "arcane/core/IParallelMng.h"
20#include "arcane/core/internal/IParallelMngInternal.h"
22#include "arccore/message_passing/internal/IMachineShMemWinBaseInternal.h"
35: m_pm_internal(pm->_internalApi())
36, m_node_window_base(m_pm_internal->createMachineShMemWinBase(nb_elem_segment * static_cast<
Int64>(sizeof_elem), sizeof_elem))
37, m_sizeof_elem(sizeof_elem)
46 return m_node_window_base->machineRanks();
55 m_node_window_base->barrier();
64 return m_node_window_base->segmentView();
73 return m_node_window_base->segmentView(rank);
82 return m_node_window_base->segmentConstView();
91 return m_node_window_base->segmentConstView(rank);
100 return m_node_window_base->add(elem);
109 return m_node_window_base->add();
118 m_node_window_base->addToAnotherSegment(rank, elem);
127 m_node_window_base->addToAnotherSegment();
136 m_node_window_base->reserve(new_nb_elem_segment_capacity *
static_cast<Int64>(m_sizeof_elem));
145 m_node_window_base->reserve();
154 m_node_window_base->resize(new_nb_elem_segment *
static_cast<Int64>(m_sizeof_elem));
163 m_node_window_base->resize();
172 m_node_window_base->shrink();
Vue constante d'un tableau de type T.
Interface du gestionnaire de parallélisme pour un sous-domaine.
void barrier() const
Méthode permettant d'attendre que tous les processus/threads du noeud appellent cette méthode pour co...
MachineShMemWinBase(IParallelMng *pm, Int64 sizeof_segment, Int32 sizeof_elem)
Constructeur.
Span< const std::byte > segmentConstView() const
Méthode permettant d'obtenir une vue sur notre segment.
void reserve()
Méthode à appeler par le ou les sous-domaines ne souhaitant pas réserver davantage de mémoire pour le...
void shrink()
Méthode permettant de réduire l'espace mémoire réservé pour les segments au minimum nécessaire.
void add()
Méthode à appeler par le ou les sous-domaines ne souhaitant pas ajouter d'éléments dans son segment.
void resize()
Méthode à appeler par le ou les sous-domaines ne souhaitant pas redimensionner leurs segments.
ConstArrayView< Int32 > machineRanks() const
Méthode permettant d'obtenir les rangs qui possèdent un segment dans la fenêtre.
void addToAnotherSegment()
Méthode à appeler par le ou les sous-domaines ne souhaitant pas ajouter d'éléments dans le segment d'...
Span< std::byte > segmentView()
Méthode permettant d'obtenir une vue sur notre segment.
Vue d'un tableau d'éléments de type T.
-*- 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.