Arcane  v3.16.7.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::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::MpiAdapter:
+ Graphe de collaboration de Arcane::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 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 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 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
 
MpiMachineMemoryWindowBaseInternalCreatorwindowCreator ()
 
- 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
 
MPI_Comm m_machine_communicator
 Communicateur MPI sur le noeud de calcul.
 
int m_machine_comm_rank = A_PROC_NULL_RANK
 
int m_machine_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
 
MpiMachineMemoryWindowBaseInternalCreatorm_window_creator
 

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 45 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 252 du fichier MpiAdapter.cc.

◆ ~MpiAdapter()

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

Définition à la ligne 320 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 1671 du fichier MpiAdapter.cc.

◆ _buildSourceInfoFromStatus()

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

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

◆ _checkFatalInRequest()

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

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

◆ _checkHasNoRequests()

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

Définition à la ligne 347 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 1374 du fichier MpiAdapter.cc.

◆ _legacyProbeMessage()

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

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

◆ _probeMessage()

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

Définition à la ligne 1137 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 1682 du fichier MpiAdapter.cc.

◆ _trace()

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

Définition à la ligne 420 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 1457 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 520 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 580 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 747 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 630 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 668 du fichier MpiAdapter.cc.

◆ barrier()

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

Définition à la ligne 721 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 435 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 338 du fichier MpiAdapter.cc.

◆ commRank()

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

Rang de cette instance dans le communicateur.

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

◆ commSize()

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

Nombre de rangs dans le communicateur.

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

◆ commSplit()

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

Définition à la ligne 981 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 364 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 1012 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 1238 du fichier MpiAdapter.cc.

◆ 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 1319 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 891 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 971 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 846 du fichier MpiAdapter.cc.

◆ enableDebugRequest()

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

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

◆ freeRequest()

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

Définition à la ligne 1613 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 478 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 561 du fichier MpiAdapter.cc.

◆ getMpiProfiling()

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

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

◆ isAllowNullRankForAnySource()

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

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

◆ isCheckRequest()

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

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

◆ isPrintRequestError()

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

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

◆ isRequestErrorAreFatal()

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

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

◆ isTraceMPIMessage()

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

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

◆ legacyProbeMessage()

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

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

◆ mpiLock()

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

Définition à la ligne 153 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 538 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 778 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 647 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 692 du fichier MpiAdapter.cc.

◆ nonBlockingBarrier()

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

Définition à la ligne 734 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 458 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 496 du fichier MpiAdapter.cc.

◆ probeMessage()

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

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

◆ probeRecvPack()

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

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

◆ profiler()

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

Définition à la ligne 1747 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 997 du fichier MpiAdapter.cc.

◆ 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 797 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 831 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 602 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 873 du fichier MpiAdapter.cc.

◆ 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 396 du fichier MpiAdapter.cc.

◆ setMpiProfiling()

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

Définition à la ligne 1712 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 385 du fichier MpiAdapter.cc.

◆ setProfiler()

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

Définition à la ligne 1730 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 374 du fichier MpiAdapter.cc.

◆ setTimeMetricCollector()

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

Définition à la ligne 205 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 184 du fichier MpiAdapter.h.

◆ testRequest()

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

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

◆ timeMetricCollector()

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

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

◆ toMPISize()

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

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

◆ waitAllRequests()

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

Définition à la ligne 1330 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 1344 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 1510 du fichier MpiAdapter.cc.

◆ windowCreator()

MpiMachineMemoryWindowBaseInternalCreator * Arcane::MessagePassing::Mpi::MpiAdapter::windowCreator ( )

Définition à la ligne 1756 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 227 du fichier MpiAdapter.h.

◆ m_comm_size

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

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

◆ m_communicator

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

Communicateur MPI.

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

◆ 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 237 du fichier MpiAdapter.h.

◆ m_empty_request2

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

Définition à la ligne 238 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 248 du fichier MpiAdapter.h.

◆ m_is_trace

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

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

◆ m_machine_comm_rank

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

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

◆ m_machine_comm_size

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

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

◆ m_machine_communicator

MPI_Comm Arcane::MessagePassing::Mpi::MpiAdapter::m_machine_communicator
private

Communicateur MPI sur le noeud de calcul.

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

◆ m_metric_collector

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

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

◆ m_mpi_lock

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

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

◆ m_mpi_prof

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

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

◆ m_nb_all_reduce

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

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

◆ m_nb_reduce

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

Définition à la ligne 233 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 239 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 241 du fichier MpiAdapter.h.

◆ m_request_set

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

Définition à la ligne 235 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 240 du fichier MpiAdapter.h.

◆ m_stat

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

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

◆ m_window_creator

MpiMachineMemoryWindowBaseInternalCreator* Arcane::MessagePassing::Mpi::MpiAdapter::m_window_creator
private

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


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