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;
Déclarations générales de la composante 'message_passing'.
Interface d'abstraction pour les operations MPI. Sert principalement a utiliser un decorateur pour le...
Opérateurs de réduction pour les types complexes (Real2, Real3, Real2x2 et Real3x3)
Encapsulation d'un MPI_Datatype.
Verrou pour les appels MPI.
Implémentation MPI du gestionnaire des échanges de messages.
Spécialisation MPI d'une 'Request'.
Implementation de l'interface des operations MPI. Correspond a un simple appel aux fonctions MPI du m...
Version autonome de MpiMessagePassingMng.
Opérateurs de réduction pour les types classiques.