15#ifndef ARCANE_CORE_DYNAMICMACHINEMEMORYWINDOW_H
16#define ARCANE_CORE_DYNAMICMACHINEMEMORYWINDOW_H
21#include "arcane/core/DynamicMachineMemoryWindowBase.h"
23#include "arcane/utils/Ref.h"
59 : m_impl(pm, nb_elem_segment, static_cast<
Int32>(sizeof(Type)))
67 : m_impl(pm, 0, static_cast<
Int32>(sizeof(Type)))
82 return m_impl.machineRanks();
162 m_impl.add(span_bytes);
202 m_impl.addToAnotherSegment(rank, span_bytes);
217 m_impl.addToAnotherSegment();
245 m_impl.reserve(new_capacity);
277 m_impl.resize(new_nb_elem);
Déclarations des types généraux de Arcane.
Types et fonctions associés aux classes SpanImpl, SmallSpan and Span.
Vue constante d'un tableau de type T.
void barrier() const
Méthode permettant d'attendre que tous les processus/threads du noeud appellent cette méthode pour co...
void add(Span< const Type > elem)
Méthode permettant d'ajouter des élements dans notre segment.
Span< Type > segmentView()
Méthode permettant d'obtenir une vue sur notre segment.
void addToAnotherSegment()
Méthode à appeler par le ou les sous-domaines ne souhaitant pas ajouter d'éléments dans le segment d'...
void reserve()
Méthode à appeler par le ou les sous-domaines ne souhaitant pas réserver davantage de mémoire pour le...
ConstArrayView< Int32 > machineRanks() const
Méthode permettant d'obtenir les rangs qui possèdent un segment dans la fenêtre.
void add()
Méthode à appeler par le ou les sous-domaines ne souhaitant pas ajouter d'éléments dans son segment.
DynamicMachineMemoryWindow(IParallelMng *pm)
Constructeur.
DynamicMachineMemoryWindow(IParallelMng *pm, Int64 nb_elem_segment)
Constructeur.
void resize(Int64 new_nb_elem)
Méthode permettant de redimensionner notre segment.
void shrink()
Méthode permettant de réduire l'espace mémoire réservé pour les segments au minimum nécessaire.
Span< const Type > segmentConstView(Int32 rank) const
Méthode permettant d'obtenir une vue sur le segment d'un autre sous-domaine du noeud.
Span< Type > segmentView(Int32 rank)
Méthode permettant d'obtenir une vue sur le segment d'un autre sous-domaine du noeud.
void reserve(Int64 new_capacity)
Méthode permettant de réserver de l'espace mémoire dans notre segment.
void resize()
Méthode à appeler par le ou les sous-domaines ne souhaitant pas redimensionner leurs segments.
Span< const Type > segmentConstView() const
Méthode permettant d'obtenir une vue sur notre segment.
void addToAnotherSegment(Int32 rank, Span< const Type > elem)
Méthode permettant d'ajouter des éléments dans le segment d'un autre sous-domaine.
Interface du gestionnaire de parallélisme pour un sous-domaine.
constexpr __host__ __device__ pointer data() const noexcept
Pointeur sur le début de la vue.
constexpr __host__ __device__ SizeType sizeBytes() const noexcept
Retourne la taille du tableau en octets.
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.
Span< DataType > asSpan(Span< std::byte, Extent > bytes)
Converti un Span<std::byte> en un Span<DataType>.
std::int32_t Int32
Type entier signé sur 32 bits.