Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
IParallelMngInternal.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/* IParallelMngInternal.h (C) 2000-2026 */
9/* */
10/* Internal part of IParallelMng in Arcane. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_INTERNAL_IPARALLELMNGINTERNAL_H
13#define ARCANE_CORE_INTERNAL_IPARALLELMNGINTERNAL_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28namespace MessagePassing
29{
32} // namespace MessagePassing
33
34/*---------------------------------------------------------------------------*/
35/*---------------------------------------------------------------------------*/
36
41class ARCANE_CORE_EXPORT IParallelMngInternal
42{
43 public:
44
45 virtual ~IParallelMngInternal() = default;
46
47 public:
48
50 virtual Runner runner() const = 0;
51
53 virtual RunQueue queue() const = 0;
54
61 virtual bool isAcceleratorAware() const = 0;
62
65
66 virtual void setDefaultRunner(const Runner& runner) = 0;
67
70 virtual Int32 masterParallelIORank() const = 0;
71
75
82 virtual void initializeWindowCreator() = 0;
83
89 virtual bool isMachineShMemWinAvailable() = 0;
90
101
112
117
125
130 virtual void machineBarrier() = 0;
131};
132
133/*---------------------------------------------------------------------------*/
134/*---------------------------------------------------------------------------*/
135
136} // namespace Arcane
137
138/*---------------------------------------------------------------------------*/
139/*---------------------------------------------------------------------------*/
140
141#endif
Declarations of Arcane's general types.
Constant view of an array of type T.
Internal part of IParallelMng.
virtual RunQueue queue() const =0
Default queue for messages. Can be null.
virtual bool isAcceleratorAware() const =0
Indicates if the implementation handles accelerators.
virtual MemoryAllocationOptions machineShMemWinMemoryAllocator()=0
Method allowing retrieval of a shared memory allocator.
virtual Ref< MessagePassing::IContigMachineShMemWinBaseInternal > createContigMachineShMemWinBase(Int64 sizeof_segment, Int32 sizeof_type)=0
Method allowing the creation of a memory window on the node.
virtual ConstArrayView< Int32 > machineRanks()=0
Method allowing retrieval of the ranks of the sub-domains of the computing node.
virtual Ref< IParallelMng > createSubParallelMngRef(Int32 color, Int32 key)=0
Creates a sub IParallelMng similar to MPI_Comm_split.
virtual bool isMachineShMemWinAvailable()=0
Method allowing to know if shared memory mode is supported.
virtual void machineBarrier()=0
Method allowing a barrier for the sub-domains of the computing node.
virtual void initializeWindowCreator()=0
Method allowing the initialization of the windowCreator specific to the implementation.
virtual Ref< MessagePassing::IMachineShMemWinBaseInternal > createMachineShMemWinBase(Int64 sizeof_segment, Int32 sizeof_type)=0
Method allowing the creation of a dynamic memory window on the node.
virtual Runner runner() const =0
Default runner. Can be null.
virtual Int32 nbSendersToMasterParallelIO() const =0
virtual Int32 masterParallelIORank() const =0
Class allowing the creation of a memory window for a node of computation.
Class allowing the creation of memory windows for a computing node.
Reference to an instance.
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.