15#ifndef ARCANE_CORE_DYNAMICMACHINEMEMORYWINDOW_H
16#define ARCANE_CORE_DYNAMICMACHINEMEMORYWINDOW_H
21#include "arcane/core/DynamicMachineMemoryWindowBase.h"
23#include "arcane/utils/Ref.h"
25#include "arccore/base/Span.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.
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__ SizeType sizeBytes() const noexcept
Retourne la taille du tableau en octets.
constexpr __host__ __device__ pointer data() const noexcept
Pointeur sur le début de la vue.
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.