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;
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;
General declarations for the 'message_passing' component.
Abstraction interface for MPI operations. Primarily used to employ a decorator for MPI functions in o...
Reduction operators for complex types (Real2, Real3, Real2x2 and Real3x3).
Encapsulation of an MPI_Datatype.
MPI implementation of the message exchange manager.
MPI specialization of a 'Request'.
Implementation of the MPI operations interface. Corresponds to a simple call to MPI functions of the ...
Standalone version of MpiMessagePassingMng.
Reduction operators for standard types.