Arcane  v3.16.7.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
SharedMemoryMachineMemoryWindowBaseInternalCreator.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 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/* SharedMemoryMachineMemoryWindowBaseInternalCreator.h (C) 2000-2025 */
9/* */
10/* Classe permettant de créer des objets de type */
11/* SharedMemoryMachineMemoryWindowBaseInternal. Une instance de cet objet */
12/* doit être partagée par tous les threads. */
13/*---------------------------------------------------------------------------*/
14
15#ifndef ARCANE_PARALLEL_THREAD_INTERNAL_SHAREDMEMORYMACHINEMEMORYWINDOWBASEINTERNALCREATOR_H
16#define ARCANE_PARALLEL_THREAD_INTERNAL_SHAREDMEMORYMACHINEMEMORYWINDOWBASEINTERNALCREATOR_H
17
18/*---------------------------------------------------------------------------*/
19/*---------------------------------------------------------------------------*/
20
22#include "arcane/utils/UniqueArray.h"
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
28{
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32
34
35/*---------------------------------------------------------------------------*/
36/*---------------------------------------------------------------------------*/
37
38class SharedMemoryMachineMemoryWindowBaseInternalCreator
39{
40 public:
41
42 SharedMemoryMachineMemoryWindowBaseInternalCreator(Int32 nb_rank, IThreadBarrier* barrier);
43 ~SharedMemoryMachineMemoryWindowBaseInternalCreator() = default;
44
45 public:
46
47 SharedMemoryMachineMemoryWindowBaseInternal* createWindow(Int32 my_rank, Int64 sizeof_segment, Int32 sizeof_type);
48
49 private:
50
51 Int32 m_nb_rank;
52 Int64 m_sizeof_window;
53 IThreadBarrier* m_barrier;
54 std::byte* m_window;
55 Int64* m_sizeof_segments;
56 Int64* m_sum_sizeof_segments;
57 UniqueArray<Int32> m_ranks;
58};
59
60/*---------------------------------------------------------------------------*/
61/*---------------------------------------------------------------------------*/
62
63} // namespace Arcane::MessagePassing
64
65/*---------------------------------------------------------------------------*/
66/*---------------------------------------------------------------------------*/
67
68#endif
Déclarations des types généraux de Arcane.
Vecteur 1D de données avec sémantique par valeur (style STL).
Déclarations des types et méthodes utilisés par les mécanismes d'échange de messages.
std::int64_t Int64
Type entier signé sur 64 bits.
std::int32_t Int32
Type entier signé sur 32 bits.