15#ifndef ARCCORE_MESSAGEPASSINGMPI_INTERNAL_MPIMACHINEMEMORYWINDOWBASEINTERNAL_H
16#define ARCCORE_MESSAGEPASSINGMPI_INTERNAL_MPIMACHINEMEMORYWINDOWBASEINTERNAL_H
21#include "arccore/collections/Array.h"
22#include "arccore/message_passing/internal/IMachineMemoryWindowBaseInternal.h"
24#include "arccore/message_passing_mpi/MessagePassingMpiGlobal.h"
29namespace Arcane::MessagePassing::Mpi
32class ARCCORE_MESSAGEPASSINGMPI_EXPORT MpiMachineMemoryWindowBaseInternal
37 explicit MpiMachineMemoryWindowBaseInternal(
Int64 sizeof_segment,
Int32 sizeof_type,
const MPI_Comm& comm_machine,
Int32 comm_machine_rank,
Int32 comm_machine_size,
ConstArrayView<Int32> machine_ranks);
39 ~MpiMachineMemoryWindowBaseInternal()
override;
60 MPI_Win m_win_sizeof_segments;
63 MPI_Win m_win_sum_sizeof_segments;
66 MPI_Comm m_comm_machine;
67 Int32 m_comm_machine_size;
68 Int32 m_comm_machine_rank;
74 Int64 m_max_sizeof_win;
75 Int64 m_actual_sizeof_win;
Vue constante d'un tableau de type T.
Classe permettant de créer une fenêtre mémoire pour un noeud de calcul.
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 > window() const override
Méthode permettant d'obtenir une vue sur toute la fenêtre.
ConstArrayView< Int32 > machineRanks() const override
Méthode permettant d'obtenir les rangs qui possèdent un segment dans la fenêtre.
Int32 sizeofOneElem() const override
Méthode permettant d'obtenir la taille d'un élement de la fenêtre.
Span< std::byte > segment() const override
Méthode permettant d'obtenir une vue sur son segment.
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.