14#ifndef ARCANE_CORE_MACHINESHMEMWINBASE_H
15#define ARCANE_CORE_MACHINESHMEMWINBASE_H
20#include "arcane/utils/Ref.h"
34class IParallelMngInternal;
37 class IMachineShMemWinBaseInternal;
253 IParallelMngInternal* m_pm_internal;
Declarations of Arcane's general types.
Types and functions associated with the classes SpanImpl, SmallSpan and Span.
Constant view of an array of type T.
Interface of the parallelism manager for a subdomain.
void reserve(Int64 new_nb_elem_segment_capacity)
Method to reserve memory space in our segment.
void barrier() const
Method to wait until all processes/threads on the node call this method to continue execution.
MachineShMemWinBase(IParallelMng *pm, Int64 sizeof_segment, Int32 sizeof_elem)
Constructor.
Span< const std::byte > segmentConstView() const
Method to obtain a view of our segment.
void resize(Int64 new_nb_elem_segment)
Method to resize our segment.
void shrink()
Method to reduce the reserved memory space for the segments to the minimum necessary.
void addToAnotherSegment(Int32 rank, Span< const std::byte > elem)
Method to add elements into the segment of another subdomain.
ConstArrayView< Int32 > machineRanks() const
Method to obtain the ranks that possess a segment in the window.
void add(Span< const std::byte > elem)
Method to add elements into our segment.
Span< std::byte > segmentView()
Method to obtain a view of our segment.
Reference to an instance.
View of an array of elements of type T.
Declarations of types and methods used by message exchange mechanisms.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
std::int64_t Int64
Signed integer type of 64 bits.
std::int32_t Int32
Signed integer type of 32 bits.