Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
ContigMachineShMemWinBase.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* ContigMachineShMemWinBase.h (C) 2000-2026 */
9/* */
10/* Class allowing the creation of a shared memory window between the */
11/* processes of the same node. */
12/*---------------------------------------------------------------------------*/
13#ifndef ARCANE_CORE_CONTIGMACHINESHMEMWINBASE_H
14#define ARCANE_CORE_CONTIGMACHINESHMEMWINBASE_H
15/*---------------------------------------------------------------------------*/
16/*---------------------------------------------------------------------------*/
17
19#include "arcane/utils/Ref.h"
20
21#include "arccore/base/Span.h"
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
26namespace Arcane
27{
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
31
32class IParallelMng;
38
39/*---------------------------------------------------------------------------*/
40/*---------------------------------------------------------------------------*/
41
47class ARCANE_CORE_EXPORT ContigMachineShMemWinBase
48{
49
50 public:
51
58 ContigMachineShMemWinBase(IParallelMng* pm, Int64 sizeof_segment, Int32 sizeof_elem);
59
60 public:
61
69
78
85
93
102
110
119 void resizeSegment(Integer new_size);
120
131
136 void barrier() const;
137
138 private:
139
140 IParallelMngInternal* m_pm_internal;
142 Int32 m_sizeof_elem;
143};
144
145/*---------------------------------------------------------------------------*/
146/*---------------------------------------------------------------------------*/
147
148} // End namespace Arcane
149
150/*---------------------------------------------------------------------------*/
151/*---------------------------------------------------------------------------*/
152
153#endif
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.
Span< const std::byte > windowConstView() const
Method allowing retrieval of a constant view on the entire window memory.
ContigMachineShMemWinBase(IParallelMng *pm, Int64 sizeof_segment, Int32 sizeof_elem)
Constructor.
void resizeSegment(Integer new_size)
Method allowing resizing of the window segments. Collective call.
void barrier() const
Method allowing waiting until all processes/threads of the node call this method to continue executio...
Span< std::byte > segmentView()
Method allowing retrieval of a view on our window segment memory.
ConstArrayView< Int32 > machineRanks() const
Method allowing retrieval of the ranks that possess a segment in the window.
Span< const std::byte > segmentConstView() const
Method allowing retrieval of a constant view on our segment memory window.
Span< std::byte > windowView()
Method allowing retrieval of a view on the entire memory window.
Internal part of IParallelMng.
Interface of the parallelism manager for a subdomain.
Class allowing the creation of a memory window for a node of computation.
Reference to an instance.
View of an array of elements of type T.
Definition Span.h:635
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.
Int32 Integer
Type representing an integer.
std::int32_t Int32
Signed integer type of 32 bits.