Arcane  v3.15.3.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::MessagePassing::Mpi::MpiAdapter
+ 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
 
ITimeMetricCollector * timeMetricCollector () const
 
void setTimeMetricCollector (ITimeMetricCollector *v)
 
bool isAllowNullRankForAnySource () const
 

Description détaillée

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

Références Arccore::Platform::getEnvironmentVariable().

◆ ~MpiAdapter()

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

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

Documentation des fonctions membres

◆ 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

Rang de cette instance dans le communicateur.

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

Référencé par Arcane::MessagePassing::Mpi::MpiSerializeMessageList::addMessage().

◆ commSize()

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

Nombre de rangs dans le communicateur.

Définition à la ligne 146 du fichier 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(), et buildRequest().

◆ 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

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

◆ 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

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

◆ 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

Définition à la ligne 155 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 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().

◆ 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().

◆ 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

Définition à la ligne 207 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 186 du fichier 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

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

◆ 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.


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