Arcane  v3.16.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::MessagePassing::Mpi::MpiAdapter

Adapteur pour MPI. Plus de détails...

#include </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/message_passing_mpi/arccore/message_passing_mpi/internal/MpiAdapter.h>

+ Graphe d'héritage de Arcane::MessagePassing::Mpi::MpiAdapter:
+ Graphe de collaboration de Arcane::MessagePassing::Mpi::MpiAdapter:

Classes

class  RequestSet
 
struct  SubRequestInfo
 

Fonctions membres publiques

 MpiAdapter (ITraceMng *msg, IStat *stat, MPI_Comm comm, MpiLock *mpi_lock, IMpiProfiling *mpi_prof=nullptr)
 
 MpiAdapter (const MpiAdapter &rhs)=delete
 
MpiAdapteroperator= (const MpiAdapter &rhs)=delete
 
void destroy ()
 Détruit l'instance. Elle ne doit plus être utilisée par la suite.
 
void broadcast (void *buf, Int64 nb_elem, Int32 root, MPI_Datatype datatype)
 
void allGather (const void *send_buf, void *recv_buf, Int64 nb_elem, MPI_Datatype datatype)
 
void gather (const void *send_buf, void *recv_buf, Int64 nb_elem, Int32 root, MPI_Datatype datatype)
 
void allGatherVariable (const void *send_buf, void *recv_buf, const int *recv_counts, const int *recv_indexes, Int64 nb_elem, MPI_Datatype datatype)
 
void gatherVariable (const void *send_buf, void *recv_buf, const int *recv_counts, const int *recv_indexes, Int64 nb_elem, Int32 root, MPI_Datatype datatype)
 
void scatterVariable (const void *send_buf, const int *send_count, const int *send_indexes, void *recv_buf, Int64 nb_elem, Int32 root, MPI_Datatype datatype)
 
void allToAll (const void *send_buf, void *recv_buf, Int32 count, MPI_Datatype datatype)
 
void allToAllVariable (const void *send_buf, const int *send_counts, const int *send_indexes, void *recv_buf, const int *recv_counts, const int *recv_indexes, MPI_Datatype datatype)
 
void reduce (const void *send_buf, void *recv_buf, Int64 count, MPI_Datatype datatype, MPI_Op op, Int32 root)
 
void allReduce (const void *send_buf, void *recv_buf, Int64 count, MPI_Datatype datatype, MPI_Op op)
 
void scan (const void *send_buf, void *recv_buf, Int64 count, MPI_Datatype datatype, MPI_Op op)
 
void directSendRecv (const void *send_buffer, Int64 send_buffer_size, void *recv_buffer, Int64 recv_buffer_size, Int32 proc, Int64 elem_size, MPI_Datatype data_type)
 
Request directSend (const void *send_buffer, Int64 send_buffer_size, Int32 proc, Int64 elem_size, MPI_Datatype data_type, int mpi_tag, bool is_blocked)
 
Request sendNonBlockingNoStat (const void *send_buffer, Int64 send_buffer_size, Int32 proc, MPI_Datatype data_type, int mpi_tag)
 Version non bloquante de send sans statistique temporelle.
 
Request directRecv (void *recv_buffer, Int64 recv_buffer_size, Int32 source_rank, Int64 elem_size, MPI_Datatype data_type, int mpi_tag, bool is_blocked)
 
Request receiveNonBlockingNoStat (void *recv_buffer, Int64 recv_buffer_size, Int32 source_rank, MPI_Datatype data_type, int mpi_tag)
 Version non bloquante de receive sans statistiques temporelles.
 
Request directSendPack (const void *send_buffer, Int64 send_buffer_size, Int32 proc, int mpi_tag, bool is_blocked)
 
void probeRecvPack (UniqueArray< Byte > &recv_buffer, Int32 proc)
 
MessageId probeMessage (PointToPointMessageInfo message)
 
MessageSourceInfo legacyProbeMessage (PointToPointMessageInfo message)
 
Request directRecv (void *recv_buffer, Int64 recv_buffer_size, MessageId message, Int64 elem_size, MPI_Datatype data_type, bool is_blocked)
 Réception via MPI_Mrecv() ou MPI_Imrecv()
 
Request directRecvPack (void *recv_buffer, Int64 recv_buffer_size, Int32 proc, int mpi_tag, bool is_blocking)
 
void waitAllRequests (ArrayView< Request > requests)
 
void waitSomeRequests (ArrayView< Request > requests, ArrayView< bool > indexes, bool is_non_blocking)
 
void waitSomeRequestsMPI (ArrayView< Request > requests, ArrayView< bool > indexes, ArrayView< MPI_Status > mpi_status, bool is_non_blocking)
 
int commRank () const
 Rang de cette instance dans le communicateur.
 
int commSize () const
 Nombre de rangs dans le communicateur.
 
MpiMessagePassingMngcommSplit (bool keep)
 
void freeRequest (Request &request)
 
bool testRequest (Request &request)
 
void enableDebugRequest (bool enable_debug_request)
 
MpiLockmpiLock () const
 
Request nonBlockingBroadcast (void *buf, Int64 nb_elem, Int32 root, MPI_Datatype datatype)
 
Request nonBlockingAllGather (const void *send_buf, void *recv_buf, Int64 nb_elem, MPI_Datatype datatype)
 
Request nonBlockingGather (const void *send_buf, void *recv_buf, Int64 nb_elem, Int32 root, MPI_Datatype datatype)
 
Request nonBlockingAllToAll (const void *send_buf, void *recv_buf, Int32 count, MPI_Datatype datatype)
 
Request nonBlockingAllReduce (const void *send_buf, void *recv_buf, Int64 count, MPI_Datatype datatype, MPI_Op op)
 
Request nonBlockingAllToAllVariable (const void *send_buf, const int *send_counts, const int *send_indexes, void *recv_buf, const int *recv_counts, const int *recv_indexes, MPI_Datatype datatype)
 
Request nonBlockingBarrier ()
 
void barrier ()
 
int toMPISize (Int64 count)
 
Request buildRequest (int ret, MPI_Request request)
 Construit une requête Arccore à partir d'une requête MPI.
 
void setRequestErrorAreFatal (bool v)
 Indique si les erreurs dans la liste des requêtes sont fatales.
 
bool isRequestErrorAreFatal () const
 
void setPrintRequestError (bool v)
 Indique si on affiche des messages pour les erreurs dans les requêtes.
 
bool isPrintRequestError () const
 
void setTraceMPIMessage (bool v)
 Indique si on affiche des messages pour chaque appel MPI.
 
bool isTraceMPIMessage () const
 
void setCheckRequest (bool v)
 Indique si on vérifie les requêtes.
 
bool isCheckRequest () const
 
void setMpiProfiling (IMpiProfiling *mpi_profiling)
 
void setProfiler (IProfiler *profiler)
 
IMpiProfilinggetMpiProfiling () const
 
IProfilerprofiler () const
 
ITimeMetricCollectortimeMetricCollector () const
 
void setTimeMetricCollector (ITimeMetricCollector *v)
 
bool isAllowNullRankForAnySource () const
 
- Fonctions membres publiques hérités de Arcane::TraceAccessor
 TraceAccessor (ITraceMng *m)
 Construit un accesseur via le gestionnaire de trace m.
 
 TraceAccessor (const TraceAccessor &rhs)
 Constructeur par recopie.
 
TraceAccessoroperator= (const TraceAccessor &rhs)
 Opérateur de recopie.
 
virtual ~TraceAccessor ()
 Libère les ressources.
 
ITraceMngtraceMng () const
 Gestionnaire de trace.
 
TraceMessage info () const
 Flot pour un message d'information.
 
TraceMessage pinfo () const
 Flot pour un message d'information en parallèle.
 
TraceMessage info (char category) const
 Flot pour un message d'information d'une catégorie donnée.
 
TraceMessage pinfo (char category) const
 Flot pour un message d'information parallèle d'une catégorie donnée.
 
TraceMessage info (bool v) const
 Flot pour un message d'information.
 
TraceMessage warning () const
 Flot pour un message d'avertissement.
 
TraceMessage pwarning () const
 
TraceMessage error () const
 Flot pour un message d'erreur.
 
TraceMessage perror () const
 
TraceMessage log () const
 Flot pour un message de log.
 
TraceMessage plog () const
 Flot pour un message de log.
 
TraceMessage logdate () const
 Flot pour un message de log précédé de la date.
 
TraceMessage fatal () const
 Flot pour un message d'erreur fatale.
 
TraceMessage pfatal () const
 Flot pour un message d'erreur fatale en parallèle.
 
TraceMessageDbg debug (Trace::eDebugLevel=Trace::Medium) const
 Flot pour un message de debug.
 
Trace::eDebugLevel configDbgLevel () const
 Niveau debug du fichier de configuration.
 
TraceMessage info (Int32 verbose_level) const
 Flot pour un message d'information d'un niveau donné
 
TraceMessage linfo () const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
TraceMessage linfo (Int32 relative_level) const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
void fatalMessage (const StandaloneTraceMessage &o) const
 

Fonctions membres privées

bool _waitAllRequestsMPI (ArrayView< Request > requests, ArrayView< bool > indexes, ArrayView< MPI_Status > mpi_status)
 
void _trace (const char *function)
 
void _addRequest (MPI_Request request)
 
void _removeRequest (MPI_Request request)
 
void _checkFatalInRequest ()
 
MessageId _probeMessage (MessageRank source, MessageTag tag, bool is_blocking)
 
MessageSourceInfo _legacyProbeMessage (MessageRank source, MessageTag tag, bool is_blocking)
 
bool _handleEndRequests (ArrayView< Request > requests, ArrayView< bool > done_indexes, ArrayView< MPI_Status > status)
 
void _checkHasNoRequests ()
 
MessageSourceInfo _buildSourceInfoFromStatus (const MPI_Status &status)
 

Attributs privés

IStatm_stat = nullptr
 
MpiLockm_mpi_lock = nullptr
 
IMpiProfilingm_mpi_prof = nullptr
 
ITimeMetricCollectorm_metric_collector = nullptr
 
MPI_Comm m_communicator
 Communicateur MPI.
 
int m_comm_rank = A_PROC_NULL_RANK
 
int m_comm_size = 0
 
Int64 m_nb_all_reduce = 0
 
Int64 m_nb_reduce = 0
 
bool m_is_trace = false
 
RequestSetm_request_set = nullptr
 
MPI_Request m_empty_request1
 Requêtes vides. Voir MpiAdapter.cc pour plus d'infos.
 
MPI_Request m_empty_request2
 
int m_recv_buffer_for_empty_request [1]
 
int m_send_buffer_for_empty_request2 [1]
 
int m_recv_buffer_for_empty_request2 [1]
 
bool m_is_allow_null_rank_for_any_source = true
 

Membres hérités additionnels

- Fonctions membres protégées hérités de Arcane::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
 
Int32 _localVerboseLevel () const
 

Description détaillée

Adapteur pour MPI.

Avertissement
en hybride MPI/Thread, une instance de cette classe est partagée entre tous les threads d'un processus MPI et donc toutes les méthodes de cette classe doivent être thread-safe.
A faire

rendre thread-safe les statistiques

rendre thread-safe le m_allocated_request

Définition à la ligne 46 du fichier MpiAdapter.h.

Documentation des constructeurs et destructeur

◆ MpiAdapter()

Arcane::MessagePassing::Mpi::MpiAdapter::MpiAdapter ( ITraceMng * msg,
IStat * stat,
MPI_Comm comm,
MpiLock * mpi_lock,
IMpiProfiling * mpi_prof = nullptr )

Ce type de requête est utilisé par openmpi à partir de la version 1.8 (il faut voir pour la 1.6, sachant que la 1.4 et 1.5 ne l'ont pas). Cette requête fonctionne un peu comme MPI_REQUEST_NULL et il est possible qu'elle soit retournée plusieurs fois. Il ne faut donc pas mettre cette requête dans m_allocated_requests. On ne peut pas accéder directement à l'adresse de cette requête vide mais l'implémentation 1.8 de openmpi retourne cette requête lorsqu'on appelle un IRecv avec une source MPI_PROC_NULL. On récupère donc la valeur comme cela.

Définition à la ligne 251 du fichier MpiAdapter.cc.

Références Arcane::Platform::getEnvironmentVariable(), m_communicator, m_empty_request1, et Arcane::TraceAccessor::TraceAccessor().

+ Voici le graphe d'appel pour cette fonction :

◆ ~MpiAdapter()

Arcane::MessagePassing::Mpi::MpiAdapter::~MpiAdapter ( )
overrideprotected

Définition à la ligne 317 du fichier MpiAdapter.cc.

Documentation des fonctions membres

◆ _addRequest()

void Arcane::MessagePassing::Mpi::MpiAdapter::_addRequest ( MPI_Request request)
private
Avertissement
Cette fonction doit etre appelee avec le verrou mpi_lock actif.

Définition à la ligne 1665 du fichier MpiAdapter.cc.

◆ _buildSourceInfoFromStatus()

MessageSourceInfo Arcane::MessagePassing::Mpi::MpiAdapter::_buildSourceInfoFromStatus ( const MPI_Status & status)
private

Définition à la ligne 1117 du fichier MpiAdapter.cc.

◆ _checkFatalInRequest()

void Arcane::MessagePassing::Mpi::MpiAdapter::_checkFatalInRequest ( )
private

Définition à la ligne 1696 du fichier MpiAdapter.cc.

◆ _checkHasNoRequests()

void Arcane::MessagePassing::Mpi::MpiAdapter::_checkHasNoRequests ( )
private

Définition à la ligne 341 du fichier MpiAdapter.cc.

◆ _handleEndRequests()

bool Arcane::MessagePassing::Mpi::MpiAdapter::_handleEndRequests ( ArrayView< Request > requests,
ArrayView< bool > done_indexes,
ArrayView< MPI_Status > status )
private

Définition à la ligne 1368 du fichier MpiAdapter.cc.

◆ _legacyProbeMessage()

MessageSourceInfo Arcane::MessagePassing::Mpi::MpiAdapter::_legacyProbeMessage ( MessageRank source,
MessageTag tag,
bool is_blocking )
private

Définition à la ligne 1184 du fichier MpiAdapter.cc.

◆ _probeMessage()

MessageId Arcane::MessagePassing::Mpi::MpiAdapter::_probeMessage ( MessageRank source,
MessageTag tag,
bool is_blocking )
private

Définition à la ligne 1131 du fichier MpiAdapter.cc.

◆ _removeRequest()

void Arcane::MessagePassing::Mpi::MpiAdapter::_removeRequest ( MPI_Request request)
private
Avertissement
Cette fonction doit etre appelee avec le verrou mpi_lock actif.

Définition à la ligne 1676 du fichier MpiAdapter.cc.

◆ _trace()

void Arcane::MessagePassing::Mpi::MpiAdapter::_trace ( const char * function)
private

Définition à la ligne 414 du fichier MpiAdapter.cc.

◆ _waitAllRequestsMPI()

bool Arcane::MessagePassing::Mpi::MpiAdapter::_waitAllRequestsMPI ( ArrayView< Request > requests,
ArrayView< bool > indexes,
ArrayView< MPI_Status > mpi_status )
private

Définition à la ligne 1451 du fichier MpiAdapter.cc.

◆ allGather()

void Arcane::MessagePassing::Mpi::MpiAdapter::allGather ( const void * send_buf,
void * recv_buf,
Int64 nb_elem,
MPI_Datatype datatype )

Définition à la ligne 514 du fichier MpiAdapter.cc.

◆ allGatherVariable()

void Arcane::MessagePassing::Mpi::MpiAdapter::allGatherVariable ( const void * send_buf,
void * recv_buf,
const int * recv_counts,
const int * recv_indexes,
Int64 nb_elem,
MPI_Datatype datatype )

Définition à la ligne 574 du fichier MpiAdapter.cc.

◆ allReduce()

void Arcane::MessagePassing::Mpi::MpiAdapter::allReduce ( const void * send_buf,
void * recv_buf,
Int64 count,
MPI_Datatype datatype,
MPI_Op op )

Définition à la ligne 741 du fichier MpiAdapter.cc.

◆ allToAll()

void Arcane::MessagePassing::Mpi::MpiAdapter::allToAll ( const void * send_buf,
void * recv_buf,
Int32 count,
MPI_Datatype datatype )

Définition à la ligne 624 du fichier MpiAdapter.cc.

◆ allToAllVariable()

void Arcane::MessagePassing::Mpi::MpiAdapter::allToAllVariable ( const void * send_buf,
const int * send_counts,
const int * send_indexes,
void * recv_buf,
const int * recv_counts,
const int * recv_indexes,
MPI_Datatype datatype )

Définition à la ligne 662 du fichier MpiAdapter.cc.

◆ barrier()

void Arcane::MessagePassing::Mpi::MpiAdapter::barrier ( )

Définition à la ligne 715 du fichier MpiAdapter.cc.

◆ broadcast()

void Arcane::MessagePassing::Mpi::MpiAdapter::broadcast ( void * buf,
Int64 nb_elem,
Int32 root,
MPI_Datatype datatype )

Définition à la ligne 429 du fichier MpiAdapter.cc.

◆ buildRequest()

Request Arcane::MessagePassing::Mpi::MpiAdapter::buildRequest ( int ret,
MPI_Request request )

Construit une requête Arccore à partir d'une requête MPI.

Définition à la ligne 332 du fichier MpiAdapter.cc.

Référencé par directRecv(), receiveNonBlockingNoStat(), et sendNonBlockingNoStat().

+ Voici le graphe des appelants de cette fonction :

◆ commRank()

int Arcane::MessagePassing::Mpi::MpiAdapter::commRank ( ) const
inline

Rang de cette instance dans le communicateur.

Définition à la ligne 142 du fichier MpiAdapter.h.

◆ commSize()

int Arcane::MessagePassing::Mpi::MpiAdapter::commSize ( ) const
inline

Nombre de rangs dans le communicateur.

Définition à la ligne 145 du fichier MpiAdapter.h.

◆ commSplit()

MpiMessagePassingMng * Arcane::MessagePassing::Mpi::MpiAdapter::commSplit ( bool keep)

Définition à la ligne 975 du fichier MpiAdapter.cc.

◆ destroy()

void Arcane::MessagePassing::Mpi::MpiAdapter::destroy ( )

Détruit l'instance. Elle ne doit plus être utilisée par la suite.

Définition à la ligne 358 du fichier MpiAdapter.cc.

◆ directRecv() [1/2]

Request Arcane::MessagePassing::Mpi::MpiAdapter::directRecv ( void * recv_buffer,
Int64 recv_buffer_size,
Int32 source_rank,
Int64 elem_size,
MPI_Datatype data_type,
int mpi_tag,
bool is_blocked )

Définition à la ligne 1006 du fichier MpiAdapter.cc.

◆ directRecv() [2/2]

Request Arcane::MessagePassing::Mpi::MpiAdapter::directRecv ( void * recv_buffer,
Int64 recv_buffer_size,
MessageId message,
Int64 elem_size,
MPI_Datatype data_type,
bool is_blocked )

Réception via MPI_Mrecv() ou MPI_Imrecv()

Définition à la ligne 1232 du fichier MpiAdapter.cc.

Références buildRequest(), Arcane::TraceAccessor::debug(), Arcane::Trace::High, et Arcane::TraceAccessor::info().

+ Voici le graphe d'appel pour cette fonction :

◆ directRecvPack()

Request Arcane::MessagePassing::Mpi::MpiAdapter::directRecvPack ( void * recv_buffer,
Int64 recv_buffer_size,
Int32 proc,
int mpi_tag,
bool is_blocking )

Définition à la ligne 1313 du fichier MpiAdapter.cc.

◆ directSend()

Request Arcane::MessagePassing::Mpi::MpiAdapter::directSend ( const void * send_buffer,
Int64 send_buffer_size,
Int32 proc,
Int64 elem_size,
MPI_Datatype data_type,
int mpi_tag,
bool is_blocked )

Définition à la ligne 885 du fichier MpiAdapter.cc.

◆ directSendPack()

Request Arcane::MessagePassing::Mpi::MpiAdapter::directSendPack ( const void * send_buffer,
Int64 send_buffer_size,
Int32 proc,
int mpi_tag,
bool is_blocked )

Définition à la ligne 965 du fichier MpiAdapter.cc.

◆ directSendRecv()

void Arcane::MessagePassing::Mpi::MpiAdapter::directSendRecv ( const void * send_buffer,
Int64 send_buffer_size,
void * recv_buffer,
Int64 recv_buffer_size,
Int32 proc,
Int64 elem_size,
MPI_Datatype data_type )

Définition à la ligne 840 du fichier MpiAdapter.cc.

◆ enableDebugRequest()

void Arcane::MessagePassing::Mpi::MpiAdapter::enableDebugRequest ( bool enable_debug_request)

Définition à la ligne 1685 du fichier MpiAdapter.cc.

◆ freeRequest()

void Arcane::MessagePassing::Mpi::MpiAdapter::freeRequest ( Request & request)

Définition à la ligne 1607 du fichier MpiAdapter.cc.

◆ gather()

void Arcane::MessagePassing::Mpi::MpiAdapter::gather ( const void * send_buf,
void * recv_buf,
Int64 nb_elem,
Int32 root,
MPI_Datatype datatype )

Définition à la ligne 472 du fichier MpiAdapter.cc.

◆ gatherVariable()

void Arcane::MessagePassing::Mpi::MpiAdapter::gatherVariable ( const void * send_buf,
void * recv_buf,
const int * recv_counts,
const int * recv_indexes,
Int64 nb_elem,
Int32 root,
MPI_Datatype datatype )

Définition à la ligne 555 du fichier MpiAdapter.cc.

◆ getMpiProfiling()

IMpiProfiling * Arcane::MessagePassing::Mpi::MpiAdapter::getMpiProfiling ( ) const

Définition à la ligne 1715 du fichier MpiAdapter.cc.

◆ isAllowNullRankForAnySource()

bool Arcane::MessagePassing::Mpi::MpiAdapter::isAllowNullRankForAnySource ( ) const
inline

Définition à la ligne 208 du fichier MpiAdapter.h.

◆ isCheckRequest()

bool Arcane::MessagePassing::Mpi::MpiAdapter::isCheckRequest ( ) const

Définition à la ligne 396 du fichier MpiAdapter.cc.

◆ isPrintRequestError()

bool Arcane::MessagePassing::Mpi::MpiAdapter::isPrintRequestError ( ) const

Définition à la ligne 384 du fichier MpiAdapter.cc.

◆ isRequestErrorAreFatal()

bool Arcane::MessagePassing::Mpi::MpiAdapter::isRequestErrorAreFatal ( ) const

Définition à la ligne 373 du fichier MpiAdapter.cc.

◆ isTraceMPIMessage()

bool Arcane::MessagePassing::Mpi::MpiAdapter::isTraceMPIMessage ( ) const
inline

Définition à la ligne 186 du fichier MpiAdapter.h.

◆ legacyProbeMessage()

MessageSourceInfo Arcane::MessagePassing::Mpi::MpiAdapter::legacyProbeMessage ( PointToPointMessageInfo message)

Définition à la ligne 1216 du fichier MpiAdapter.cc.

◆ mpiLock()

MpiLock * Arcane::MessagePassing::Mpi::MpiAdapter::mpiLock ( ) const
inline

Définition à la ligne 154 du fichier MpiAdapter.h.

◆ nonBlockingAllGather()

Request Arcane::MessagePassing::Mpi::MpiAdapter::nonBlockingAllGather ( const void * send_buf,
void * recv_buf,
Int64 nb_elem,
MPI_Datatype datatype )

Définition à la ligne 532 du fichier MpiAdapter.cc.

◆ nonBlockingAllReduce()

Request Arcane::MessagePassing::Mpi::MpiAdapter::nonBlockingAllReduce ( const void * send_buf,
void * recv_buf,
Int64 count,
MPI_Datatype datatype,
MPI_Op op )

Définition à la ligne 772 du fichier MpiAdapter.cc.

◆ nonBlockingAllToAll()

Request Arcane::MessagePassing::Mpi::MpiAdapter::nonBlockingAllToAll ( const void * send_buf,
void * recv_buf,
Int32 count,
MPI_Datatype datatype )

Définition à la ligne 641 du fichier MpiAdapter.cc.

◆ nonBlockingAllToAllVariable()

Request Arcane::MessagePassing::Mpi::MpiAdapter::nonBlockingAllToAllVariable ( const void * send_buf,
const int * send_counts,
const int * send_indexes,
void * recv_buf,
const int * recv_counts,
const int * recv_indexes,
MPI_Datatype datatype )

Définition à la ligne 686 du fichier MpiAdapter.cc.

◆ nonBlockingBarrier()

Request Arcane::MessagePassing::Mpi::MpiAdapter::nonBlockingBarrier ( )

Définition à la ligne 728 du fichier MpiAdapter.cc.

◆ nonBlockingBroadcast()

Request Arcane::MessagePassing::Mpi::MpiAdapter::nonBlockingBroadcast ( void * buf,
Int64 nb_elem,
Int32 root,
MPI_Datatype datatype )

Définition à la ligne 452 du fichier MpiAdapter.cc.

◆ nonBlockingGather()

Request Arcane::MessagePassing::Mpi::MpiAdapter::nonBlockingGather ( const void * send_buf,
void * recv_buf,
Int64 nb_elem,
Int32 root,
MPI_Datatype datatype )

Définition à la ligne 490 du fichier MpiAdapter.cc.

◆ probeMessage()

MessageId Arcane::MessagePassing::Mpi::MpiAdapter::probeMessage ( PointToPointMessageInfo message)

Définition à la ligne 1168 du fichier MpiAdapter.cc.

◆ probeRecvPack()

void Arcane::MessagePassing::Mpi::MpiAdapter::probeRecvPack ( UniqueArray< Byte > & recv_buffer,
Int32 proc )

Définition à la ligne 1093 du fichier MpiAdapter.cc.

◆ profiler()

IProfiler * Arcane::MessagePassing::Mpi::MpiAdapter::profiler ( ) const

Définition à la ligne 1741 du fichier MpiAdapter.cc.

◆ receiveNonBlockingNoStat()

Request Arcane::MessagePassing::Mpi::MpiAdapter::receiveNonBlockingNoStat ( void * recv_buffer,
Int64 recv_buffer_size,
Int32 source_rank,
MPI_Datatype data_type,
int mpi_tag )

Version non bloquante de receive sans statistiques temporelles.

Définition à la ligne 991 du fichier MpiAdapter.cc.

Références buildRequest(), et m_communicator.

+ Voici le graphe d'appel pour cette fonction :

◆ reduce()

void Arcane::MessagePassing::Mpi::MpiAdapter::reduce ( const void * send_buf,
void * recv_buf,
Int64 count,
MPI_Datatype datatype,
MPI_Op op,
Int32 root )

Définition à la ligne 791 du fichier MpiAdapter.cc.

◆ scan()

void Arcane::MessagePassing::Mpi::MpiAdapter::scan ( const void * send_buf,
void * recv_buf,
Int64 count,
MPI_Datatype datatype,
MPI_Op op )

Définition à la ligne 825 du fichier MpiAdapter.cc.

◆ scatterVariable()

void Arcane::MessagePassing::Mpi::MpiAdapter::scatterVariable ( const void * send_buf,
const int * send_count,
const int * send_indexes,
void * recv_buf,
Int64 nb_elem,
Int32 root,
MPI_Datatype datatype )

Définition à la ligne 596 du fichier MpiAdapter.cc.

◆ sendNonBlockingNoStat()

Request Arcane::MessagePassing::Mpi::MpiAdapter::sendNonBlockingNoStat ( const void * send_buffer,
Int64 send_buffer_size,
Int32 proc,
MPI_Datatype data_type,
int mpi_tag )

Version non bloquante de send sans statistique temporelle.

Définition à la ligne 867 du fichier MpiAdapter.cc.

Références buildRequest(), Arcane::TraceAccessor::info(), et m_communicator.

+ Voici le graphe d'appel pour cette fonction :

◆ setCheckRequest()

void Arcane::MessagePassing::Mpi::MpiAdapter::setCheckRequest ( bool v)

Indique si on vérifie les requêtes.

Cette valeur ne doit être modifiée s'il y a des requêtes en cours.

Définition à la ligne 390 du fichier MpiAdapter.cc.

◆ setMpiProfiling()

void Arcane::MessagePassing::Mpi::MpiAdapter::setMpiProfiling ( IMpiProfiling * mpi_profiling)

Définition à la ligne 1706 du fichier MpiAdapter.cc.

◆ setPrintRequestError()

void Arcane::MessagePassing::Mpi::MpiAdapter::setPrintRequestError ( bool v)

Indique si on affiche des messages pour les erreurs dans les requêtes.

Définition à la ligne 379 du fichier MpiAdapter.cc.

◆ setProfiler()

void Arcane::MessagePassing::Mpi::MpiAdapter::setProfiler ( IProfiler * profiler)

Définition à la ligne 1724 du fichier MpiAdapter.cc.

◆ setRequestErrorAreFatal()

void Arcane::MessagePassing::Mpi::MpiAdapter::setRequestErrorAreFatal ( bool v)

Indique si les erreurs dans la liste des requêtes sont fatales.

Définition à la ligne 368 du fichier MpiAdapter.cc.

◆ setTimeMetricCollector()

void Arcane::MessagePassing::Mpi::MpiAdapter::setTimeMetricCollector ( ITimeMetricCollector * v)
inline

Définition à la ligne 206 du fichier MpiAdapter.h.

◆ setTraceMPIMessage()

void Arcane::MessagePassing::Mpi::MpiAdapter::setTraceMPIMessage ( bool v)
inline

Indique si on affiche des messages pour chaque appel MPI.

Définition à la ligne 185 du fichier MpiAdapter.h.

◆ testRequest()

bool Arcane::MessagePassing::Mpi::MpiAdapter::testRequest ( Request & request)

Définition à la ligne 1628 du fichier MpiAdapter.cc.

◆ timeMetricCollector()

ITimeMetricCollector * Arcane::MessagePassing::Mpi::MpiAdapter::timeMetricCollector ( ) const
inline

Définition à la ligne 205 du fichier MpiAdapter.h.

◆ toMPISize()

int Arcane::MessagePassing::Mpi::MpiAdapter::toMPISize ( Int64 count)

Définition à la ligne 405 du fichier MpiAdapter.cc.

◆ waitAllRequests()

void Arcane::MessagePassing::Mpi::MpiAdapter::waitAllRequests ( ArrayView< Request > requests)

Définition à la ligne 1324 du fichier MpiAdapter.cc.

◆ waitSomeRequests()

void Arcane::MessagePassing::Mpi::MpiAdapter::waitSomeRequests ( ArrayView< Request > requests,
ArrayView< bool > indexes,
bool is_non_blocking )

Définition à la ligne 1338 du fichier MpiAdapter.cc.

◆ waitSomeRequestsMPI()

void Arcane::MessagePassing::Mpi::MpiAdapter::waitSomeRequestsMPI ( ArrayView< Request > requests,
ArrayView< bool > indexes,
ArrayView< MPI_Status > mpi_status,
bool is_non_blocking )

Définition à la ligne 1504 du fichier MpiAdapter.cc.

Documentation des données membres

◆ m_comm_rank

int Arcane::MessagePassing::Mpi::MpiAdapter::m_comm_rank = A_PROC_NULL_RANK
private

Définition à la ligne 217 du fichier MpiAdapter.h.

◆ m_comm_size

int Arcane::MessagePassing::Mpi::MpiAdapter::m_comm_size = 0
private

Définition à la ligne 218 du fichier MpiAdapter.h.

◆ m_communicator

MPI_Comm Arcane::MessagePassing::Mpi::MpiAdapter::m_communicator
private

Communicateur MPI.

Définition à la ligne 216 du fichier MpiAdapter.h.

Référencé par MpiAdapter(), receiveNonBlockingNoStat(), et sendNonBlockingNoStat().

◆ m_empty_request1

MPI_Request Arcane::MessagePassing::Mpi::MpiAdapter::m_empty_request1
private

Requêtes vides. Voir MpiAdapter.cc pour plus d'infos.

Définition à la ligne 224 du fichier MpiAdapter.h.

Référencé par MpiAdapter().

◆ m_empty_request2

MPI_Request Arcane::MessagePassing::Mpi::MpiAdapter::m_empty_request2
private

Définition à la ligne 225 du fichier MpiAdapter.h.

◆ m_is_allow_null_rank_for_any_source

bool Arcane::MessagePassing::Mpi::MpiAdapter::m_is_allow_null_rank_for_any_source = true
private

Définition à la ligne 235 du fichier MpiAdapter.h.

◆ m_is_trace

bool Arcane::MessagePassing::Mpi::MpiAdapter::m_is_trace = false
private

Définition à la ligne 221 du fichier MpiAdapter.h.

◆ m_metric_collector

ITimeMetricCollector* Arcane::MessagePassing::Mpi::MpiAdapter::m_metric_collector = nullptr
private

Définition à la ligne 215 du fichier MpiAdapter.h.

◆ m_mpi_lock

MpiLock* Arcane::MessagePassing::Mpi::MpiAdapter::m_mpi_lock = nullptr
private

Définition à la ligne 213 du fichier MpiAdapter.h.

◆ m_mpi_prof

IMpiProfiling* Arcane::MessagePassing::Mpi::MpiAdapter::m_mpi_prof = nullptr
private

Définition à la ligne 214 du fichier MpiAdapter.h.

◆ m_nb_all_reduce

Int64 Arcane::MessagePassing::Mpi::MpiAdapter::m_nb_all_reduce = 0
private

Définition à la ligne 219 du fichier MpiAdapter.h.

◆ m_nb_reduce

Int64 Arcane::MessagePassing::Mpi::MpiAdapter::m_nb_reduce = 0
private

Définition à la ligne 220 du fichier MpiAdapter.h.

◆ m_recv_buffer_for_empty_request

int Arcane::MessagePassing::Mpi::MpiAdapter::m_recv_buffer_for_empty_request[1]
private

Définition à la ligne 226 du fichier MpiAdapter.h.

◆ m_recv_buffer_for_empty_request2

int Arcane::MessagePassing::Mpi::MpiAdapter::m_recv_buffer_for_empty_request2[1]
private

Définition à la ligne 228 du fichier MpiAdapter.h.

◆ m_request_set

RequestSet* Arcane::MessagePassing::Mpi::MpiAdapter::m_request_set = nullptr
private

Définition à la ligne 222 du fichier MpiAdapter.h.

◆ m_send_buffer_for_empty_request2

int Arcane::MessagePassing::Mpi::MpiAdapter::m_send_buffer_for_empty_request2[1]
private

Définition à la ligne 227 du fichier MpiAdapter.h.

◆ m_stat

IStat* Arcane::MessagePassing::Mpi::MpiAdapter::m_stat = nullptr
private

Définition à la ligne 212 du fichier MpiAdapter.h.


La documentation de cette classe a été générée à partir des fichiers suivants :