15#ifndef ARCCORE_MESSAGEPASSINGMPI_INTERNAL_MPICONTIGMACHINESHMEMWINBASEINTERNAL_H
16#define ARCCORE_MESSAGEPASSINGMPI_INTERNAL_MPICONTIGMACHINESHMEMWINBASEINTERNAL_H
21#include "arccore/collections/Array.h"
22#include "arccore/message_passing/internal/IContigMachineShMemWinBaseInternal.h"
24#include "arccore/message_passing_mpi/MessagePassingMpiGlobal.h"
29namespace Arcane::MessagePassing::Mpi
32class ARCCORE_MESSAGEPASSINGMPI_EXPORT MpiContigMachineShMemWinBaseInternal
37 explicit MpiContigMachineShMemWinBaseInternal(
Int64 sizeof_segment,
Int32 sizeof_type,
const MPI_Comm& comm_machine,
Int32 comm_machine_rank,
Int32 comm_machine_size,
ConstArrayView<Int32> machine_ranks);
39 ~MpiContigMachineShMemWinBaseInternal()
override;
64 MPI_Win m_win_sizeof_segments;
67 MPI_Win m_win_sum_sizeof_segments;
70 MPI_Comm m_comm_machine;
71 Int32 m_comm_machine_size = 0;
72 Int32 m_comm_machine_rank = 0;
74 Int32 m_sizeof_type = 0;
78 Int64 m_max_sizeof_win = 0;
79 Int64 m_actual_sizeof_win = 0;
Vue constante d'un tableau de type T.
Classe permettant de créer une fenêtre mémoire pour un noeud de calcul.
Span< const std::byte > segmentConstView() const override
Méthode permettant d'obtenir une vue sur son segment.
Span< std::byte > windowView() override
Méthode permettant d'obtenir une vue sur toute la fenêtre.
void barrier() const override
Méthode permettant d'attendre que tous les processus/threads du noeud appellent cette méthode pour co...
void resizeSegment(Int64 new_sizeof_segment) override
Méthode permettant de redimensionner les segments de la fenêtre.
Span< std::byte > segmentView() override
Méthode permettant d'obtenir une vue sur son segment.
ConstArrayView< Int32 > machineRanks() const override
Méthode permettant d'obtenir les rangs qui possèdent un segment dans la fenêtre.
Span< const std::byte > windowConstView() const override
Méthode permettant d'obtenir une vue sur toute la fenêtre.
Int32 sizeofOneElem() const override
Méthode permettant d'obtenir la taille d'un élement de la fenêtre.
Vue d'un tableau d'éléments de type T.
Vue d'un tableau d'éléments de type T.
std::int64_t Int64
Type entier signé sur 64 bits.
std::int32_t Int32
Type entier signé sur 32 bits.