12#ifndef ARCCORE_MESSAGEPASSINGMPI_MESSAGEPASSINGMPIGLOBAL_H
13#define ARCCORE_MESSAGEPASSINGMPI_MESSAGEPASSINGMPIGLOBAL_H
24#ifndef MPICH_SKIP_MPICXX
25#define MPICH_SKIP_MPICXX
27#ifndef OMPI_SKIP_MPICXX
28#define OMPI_SKIP_MPICXX
35#if !defined(ARCCORE_OS_WIN32)
36#if MPI_VERSION < 3 || (MPI_VERSION == 3 && MPI_SUBVERSION < 1)
37#error "MPI_VERSION 3.1 is required. Please disable MPI".
41#if defined(ARCCORE_OS_WIN32)
45#define ARCCORE_MPIOP_CALL __stdcall
48#ifndef ARCCORE_MPIOP_CALL
49#define ARCCORE_MPIOP_CALL
55#if defined(ARCCORE_COMPONENT_arccore_message_passing_mpi)
56#define ARCCORE_MESSAGEPASSINGMPI_EXPORT ARCCORE_EXPORT
57#define ARCCORE_MESSAGEPASSINGMPI_EXTERN_TPL
59#define ARCCORE_MESSAGEPASSINGMPI_EXPORT ARCCORE_IMPORT
60#define ARCCORE_MESSAGEPASSINGMPI_EXTERN_TPL extern
66namespace Arcane::MessagePassing::Mpi
76class MpiSerializeMessageList;
77class MpiSerializeDispatcher;
79class MpiSerializeMessageList;
80template <
typename DataType>
82template <
typename Type>
89namespace Arcane::MessagePassing::Mpi::MpiBuiltIn
101datatype(
unsigned char)
133 return MPI_LONG_DOUBLE;
141datatype(
unsigned short)
143 return MPI_UNSIGNED_SHORT;
146datatype(
unsigned int)
151datatype(
unsigned long)
153 return MPI_UNSIGNED_LONG;
158 return MPI_LONG_LONG;
161datatype(
unsigned long long)
163 return MPI_LONG_LONG;
173namespace Arccore::MessagePassing::Mpi
176using Arcane::MessagePassing::internal::BasicSerializeMessage;
178using Arcane::MessagePassing::Mpi::IMpiProfiling;
179using Arcane::MessagePassing::Mpi::IMpiReduceOperator;
180using Arcane::MessagePassing::Mpi::MpiAdapter;
181using Arcane::MessagePassing::Mpi::MpiDatatype;
182using Arcane::MessagePassing::Mpi::MpiLock;
183using Arcane::MessagePassing::Mpi::MpiMessagePassingMng;
184using Arcane::MessagePassing::Mpi::MpiRequest;
185using Arcane::MessagePassing::Mpi::MpiSerializeDispatcher;
186using Arcane::MessagePassing::Mpi::MpiSerializeMessageList;
187using Arcane::MessagePassing::Mpi::MpiTypeDispatcher;
188using Arcane::MessagePassing::Mpi::NoMpiProfiling;
189using Arcane::MessagePassing::Mpi::StandaloneMpiMessagePassingMng;
190using Arcane::MessagePassing::Mpi::StdMpiReduceOperator;
191namespace MpiBuiltIn = Arcane::MessagePassing::Mpi::MpiBuiltIn;
Déclarations générales de la composante 'message_passing'.
Opérateurs de réduction pour les types complexes (Real2, Real3, Real2x2 et Real3x3)
Implémentation MPI du gestionnaire des échanges de messages.
Version autonome de MpiMessagePassingMng.
Opérateurs de réduction pour les types classiques.