Arcane  v3.15.3.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/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 Arccore::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
 
MpiLockm_mpi_lock
 
IMpiProfilingm_mpi_prof
 
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 Arccore::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 47 du fichier arccore/src/message_passing_mpi/arccore/message_passing_mpi/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 246 du fichier MpiAdapter.cc.

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

◆ ~MpiAdapter()

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

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

◆ _buildSourceInfoFromStatus()

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

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

◆ _checkFatalInRequest()

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

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

◆ _checkHasNoRequests()

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

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

◆ _legacyProbeMessage()

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

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

◆ _probeMessage()

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

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

◆ _trace()

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

Définition à la ligne 409 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 1446 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 509 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 569 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 736 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 619 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 657 du fichier MpiAdapter.cc.

◆ barrier()

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

Définition à la ligne 710 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 424 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 327 du fichier MpiAdapter.cc.

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

◆ commRank()

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

◆ commSize()

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

Nombre de rangs dans le communicateur.

Définition à la ligne 146 du fichier arccore/src/message_passing_mpi/arccore/message_passing_mpi/MpiAdapter.h.

◆ commSplit()

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

Définition à la ligne 970 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 353 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 1001 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 1227 du fichier MpiAdapter.cc.

Références Arccore::MessagePassing::IStat::add(), buildRequest(), Arccore::TraceAccessor::debug(), Arccore::Trace::High, et Arccore::TraceAccessor::info().

◆ 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 1308 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 880 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 960 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 835 du fichier MpiAdapter.cc.

◆ enableDebugRequest()

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

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

◆ freeRequest()

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

Définition à la ligne 1602 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 467 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 550 du fichier MpiAdapter.cc.

◆ getMpiProfiling()

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

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

◆ isAllowNullRankForAnySource()

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

◆ isCheckRequest()

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

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

◆ isPrintRequestError()

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

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

◆ isRequestErrorAreFatal()

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

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

◆ isTraceMPIMessage()

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

◆ legacyProbeMessage()

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

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

◆ mpiLock()

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

◆ nonBlockingAllGather()

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

Définition à la ligne 527 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 767 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 636 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 681 du fichier MpiAdapter.cc.

◆ nonBlockingBarrier()

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

Définition à la ligne 723 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 447 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 485 du fichier MpiAdapter.cc.

◆ probeMessage()

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

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

◆ probeRecvPack()

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

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

◆ profiler()

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

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

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

◆ 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 786 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 820 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 591 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 862 du fichier MpiAdapter.cc.

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

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

Références Arcane::MessagePassing::Mpi::MpiAdapter::RequestSet::m_no_check_request.

◆ setMpiProfiling()

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

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

◆ setProfiler()

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

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

◆ setTimeMetricCollector()

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

◆ setTraceMPIMessage()

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

Indique si on affiche des messages pour chaque appel MPI.

Définition à la ligne 186 du fichier arccore/src/message_passing_mpi/arccore/message_passing_mpi/MpiAdapter.h.

◆ testRequest()

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

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

◆ timeMetricCollector()

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

◆ toMPISize()

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

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

◆ waitAllRequests()

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

Définition à la ligne 1319 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 1333 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 1499 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

◆ m_comm_size

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

◆ m_communicator

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

◆ 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 225 du fichier arccore/src/message_passing_mpi/arccore/message_passing_mpi/MpiAdapter.h.

Référencé par MpiAdapter().

◆ m_empty_request2

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

◆ m_is_allow_null_rank_for_any_source

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

◆ m_is_trace

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

◆ m_metric_collector

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

◆ m_mpi_lock

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

◆ m_mpi_prof

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

◆ m_nb_all_reduce

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

◆ m_nb_reduce

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

◆ m_recv_buffer_for_empty_request

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

◆ m_recv_buffer_for_empty_request2

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

◆ m_request_set

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

◆ m_send_buffer_for_empty_request2

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

◆ m_stat

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

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