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;
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.
void barrier() const override
Méthode permettant d'attendre que tous les processus/threads du noeud appellent cette méthode pour co...
Span< std::byte > windowView() override
Méthode permettant d'obtenir une vue sur toute la fenêtre.
void resizeSegment(Int64 new_sizeof_segment) override
Méthode permettant de redimensionner les segments de 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< const std::byte > windowConstView() const override
Méthode permettant d'obtenir une vue sur toute la fenêtre.
Span< std::byte > segmentView() override
Méthode permettant d'obtenir une vue sur son segment.
Span< const std::byte > segmentConstView() const override
Méthode permettant d'obtenir une vue sur son segment.
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.