42 explicit Impl(MPI_Comm mpi_comm,
bool clean_comm =
false)
43 : m_communicator(mpi_comm)
44 , m_clean_comm(clean_comm)
46 m_trace_mng = Arccore::arccoreCreateDefaultTraceMng();
47 ::MPI_Comm_rank(mpi_comm, &m_comm_rank);
48 ::MPI_Comm_size(mpi_comm, &m_comm_size);
52 m_adapter =
new MpiAdapter(m_trace_mng.get(), m_stat, mpi_comm, mpi_lock);
55 m_dispatchers->setDeleteDispatchers(
true);
64 std::cerr <<
"ERROR: msg=" << ex <<
"\n";
71 MPI_Comm_free(&m_communicator);
83 IStat* m_stat =
nullptr;
86 int m_comm_rank = A_NULL_RANK;
87 int m_comm_size = A_NULL_RANK;
88 MPI_Comm m_communicator = MPI_COMM_NULL;
89 bool m_clean_comm =
false;
128 _createAndSetCustomDispatcher<DataType>(dispatchers, mpm, adapter, dt);
137create(MPI_Comm mpi_comm,
bool clean_comm)
139 Impl* p =
new Impl(mpi_comm, clean_comm);
140 auto mpm =
new StandaloneMpiMessagePassingMng(p);
141 auto adapter = p->m_adapter;
142 auto dsp = p->m_dispatchers;
144 _createAndSetDispatcher<char>(dsp, mpm, adapter);
145 _createAndSetDispatcher<signed char>(dsp, mpm, adapter);
146 _createAndSetDispatcher<unsigned char>(dsp, mpm, adapter);
147 _createAndSetDispatcher<short>(dsp, mpm, adapter);
148 _createAndSetDispatcher<unsigned short>(dsp, mpm, adapter);
149 _createAndSetDispatcher<int>(dsp, mpm, adapter);
150 _createAndSetDispatcher<unsigned int>(dsp, mpm, adapter);
151 _createAndSetDispatcher<long>(dsp, mpm, adapter);
152 _createAndSetDispatcher<unsigned long>(dsp, mpm, adapter);
153 _createAndSetDispatcher<long long>(dsp, mpm, adapter);
154 _createAndSetDispatcher<unsigned long long>(dsp, mpm, adapter);
155 _createAndSetDispatcher<float>(dsp, mpm, adapter);
156 _createAndSetDispatcher<double>(dsp, mpm, adapter);
157 _createAndSetDispatcher<long double>(dsp, mpm, adapter);
162 MPI_Datatype uint8_datatype = MpiBuiltIn::datatype(uint8_t{});
165 MPI_Datatype mpi_datatype;
166 MPI_Type_contiguous(2, uint8_datatype, &mpi_datatype);
167 MPI_Type_commit(&mpi_datatype);
169 _createAndSetCustomDispatcher<BFloat16>(dsp, mpm, adapter, x);
173 MPI_Datatype mpi_datatype;
174 MPI_Type_contiguous(2, uint8_datatype, &mpi_datatype);
175 MPI_Type_commit(&mpi_datatype);
177 _createAndSetCustomDispatcher<Float16>(dsp, mpm, adapter, x);