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
77ARCCORE_MESSAGEPASSINGMPI_EXPORT MPI_Comm
88ARCCORE_MESSAGEPASSINGMPI_EXPORT
bool
95namespace Arcane::MessagePassing::Mpi
108class MpiMessagePassingMng;
109class MpiSerializeMessageList;
110class MpiSerializeDispatcher;
112class MpiSerializeMessageList;
113template <
typename DataType>
115template <
typename Type>
126namespace Arcane::MessagePassing::Mpi::MpiBuiltIn
138datatype(
unsigned char)
170 return MPI_LONG_DOUBLE;
178datatype(
unsigned short)
180 return MPI_UNSIGNED_SHORT;
183datatype(
unsigned int)
188datatype(
unsigned long)
190 return MPI_UNSIGNED_LONG;
195 return MPI_LONG_LONG;
198datatype(
unsigned long long)
200 return MPI_LONG_LONG;
210namespace Arccore::MessagePassing::Mpi
213using Arcane::MessagePassing::internal::BasicSerializeMessage;
215using Arcane::MessagePassing::Mpi::IMpiProfiling;
216using Arcane::MessagePassing::Mpi::IMpiReduceOperator;
217using Arcane::MessagePassing::Mpi::MpiAdapter;
218using Arcane::MessagePassing::Mpi::MpiDatatype;
219using Arcane::MessagePassing::Mpi::MpiLock;
220using Arcane::MessagePassing::Mpi::MpiMessagePassingMng;
221using Arcane::MessagePassing::Mpi::MpiRequest;
222using Arcane::MessagePassing::Mpi::MpiSerializeDispatcher;
223using Arcane::MessagePassing::Mpi::MpiSerializeMessageList;
224using Arcane::MessagePassing::Mpi::MpiTypeDispatcher;
225using Arcane::MessagePassing::Mpi::NoMpiProfiling;
226using Arcane::MessagePassing::Mpi::StandaloneMpiMessagePassingMng;
227using Arcane::MessagePassing::Mpi::StdMpiReduceOperator;
228namespace MpiBuiltIn = Arcane::MessagePassing::Mpi::MpiBuiltIn;
General declarations for the 'message_passing' component.
Interface of the message passing manager.
Reduction operators for complex types (Real2, Real3, Real2x2 and Real3x3).
Standalone version of IMessagePassingMng associated to a MPI Communicator.
Reduction operators for standard types.
Declarations of types and methods used by message exchange mechanisms.
ARCCORE_MESSAGEPASSINGMPI_EXPORT bool fillMpiCommunicatorIfValid(IMessagePassingMng *mpm, MPI_Comm *mpi_comm)
Set mpi_comm with the MPI communicator associated to mpm if it is valid.
ARCCORE_MESSAGEPASSINGMPI_EXPORT MPI_Comm toMpiCommunicator(IMessagePassingMng *mpm)
Return the MPI communicator associated to mpm.