15#include "arcane/parallel/thread/internal/SharedMemoryMachineMemoryWindowBaseInternalCreator.h"
17#include "arcane/parallel/thread/internal/SharedMemoryMachineMemoryWindowBaseInternal.h"
18#include "arccore/concurrency/IThreadBarrier.h"
29SharedMemoryMachineMemoryWindowBaseInternalCreator::
30SharedMemoryMachineMemoryWindowBaseInternalCreator(
Int32 nb_rank, IThreadBarrier* barrier)
35, m_sizeof_segments(nullptr)
36, m_sum_sizeof_segments(nullptr)
38 m_ranks.resize(m_nb_rank);
39 for (Int32 i = 0; i < m_nb_rank; ++i) {
47SharedMemoryMachineMemoryWindowBaseInternal* SharedMemoryMachineMemoryWindowBaseInternalCreator::
48createWindow(Int32 my_rank, Int64 sizeof_segment, Int32 sizeof_type)
51 m_sizeof_segments =
new Int64[m_nb_rank];
52 m_sum_sizeof_segments =
new Int64[m_nb_rank];
56 m_sizeof_segments[my_rank] = sizeof_segment;
61 for (Int32 i = 0; i < m_nb_rank; ++i) {
62 m_sum_sizeof_segments[i] = m_sizeof_window;
63 m_sizeof_window += m_sizeof_segments[i];
65 m_window =
new std::byte[m_sizeof_window];
69 auto* window_obj =
new SharedMemoryMachineMemoryWindowBaseInternal(my_rank, m_nb_rank, m_ranks, sizeof_type, m_window, m_sizeof_segments, m_sum_sizeof_segments, m_sizeof_window, m_barrier);
73 m_sizeof_segments =
nullptr;
74 m_sum_sizeof_segments =
nullptr;
Déclarations des types et méthodes utilisés par les mécanismes d'échange de messages.
std::int32_t Int32
Type entier signé sur 32 bits.