OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
|
#include <CommMPI.h>
Public Member Functions | |
CommMPI (int &argc, char **&argv, int procs=(-1), bool mpiinit=true, MPI_Comm mpicomm=MPI_COMM_WORLD) | |
virtual | ~CommMPI (void) |
virtual const char * | name () const |
virtual void | cleanupMessage (void *) |
virtual bool | raw_send (void *, int size, int node, int tag) |
virtual MPI_Request | raw_isend (void *, int size, int node, int tag) |
virtual MPI_Request | raw_ireceive (char *buf, int size, int node, int tag) |
virtual int | raw_receive (char *, int size, int &node, int &tag) |
virtual int | raw_probe_receive (char *&, int &node, int &tag) |
Public Member Functions inherited from Communicate | |
Communicate (int argc=0, char **argv=NULL, int procs=(-1)) | |
virtual | ~Communicate (void) |
virtual const char * | name () const |
int | getNodes () const |
int | getContexts (const int n) const |
int | getProcesses (const int n, const int c) const |
int | myNode () const |
int | getError () const |
int | getReceived () const |
bool | send (Message *, int node, int tag, bool delmsg=true) |
Message * | receive (int &node, int &tag) |
Message * | receive_block (int &node, int &tag) |
virtual bool | raw_send (void *, int, int, int) |
virtual MPI_Request | raw_isend (void *, int, int, int) |
virtual int | raw_receive (char *, int, int &, int &) |
virtual MPI_Request | raw_ireceive (char *, int, int, int) |
virtual int | raw_probe_receive (char *&, int &, int &) |
virtual int | broadcast_all (Message *, int) |
virtual int | broadcast_others (Message *, int, bool delmsg=true) |
void | barrier (void) |
virtual void | cleanupMessage (void *) |
Public Member Functions inherited from TagMaker | |
TagMaker (void) | |
virtual | ~TagMaker (void) |
int | next_tag (int t, int s=1000) |
int | current_tag (int t, int s=1000) |
int | reset_tag (int t, int s=1000) |
Protected Member Functions | |
virtual bool | mysend (Message *, int node, int utag, int etag) |
virtual Message * | myreceive (int &node, int &tag, int etag) |
virtual void | mybarrier (void) |
virtual bool | resend (void *buf, int size, int node, int etag) |
Protected Member Functions inherited from Communicate | |
bool | add_msg (Message *, int, int) |
Message * | find_msg (int &, int &) |
virtual bool | mysend (Message *, int node, int utag, int etag) |
virtual Message * | myreceive (int &node, int &tag, int etag) |
virtual void | mybarrier (void) |
virtual bool | resend (void *buf, int size, int node, int etag) |
int | find_msg_length (Message &) |
void | fill_msg_buffer (void *, Message &, int, int, int) |
Message * | unpack_message (int &node, int &tag, void *pos) |
void | add_to_send_cache (void *pos, MsgNum_t mnum, int size, int node) |
void | request_retransmission (int node, MsgNum_t mnum) |
void | perform_resend (MsgNum_t mnum) |
void | unpack_retransmission_request (int nitems, void *pos) |
void | send_ok_message (int node, MsgNum_t mnum) |
void | clear_ok_messages (int nitems, void *pos) |
void | remove_single_ok_message (MsgNum_t mnum) |
void | process_resend_requests () |
Private Member Functions | |
void * | pack_message (Message *msg, int tag, int &buffsize, int node) |
Private Attributes | |
MPI_Comm | communicator |
bool | weInitialized |
Additional Inherited Members | |
Public Types inherited from Communicate | |
enum | CommErrors { COMM_NOERROR , COMM_ERROR , COMM_NOSEND , COMM_NORECEIVE } |
enum | CommTags { COMM_HOSTS_TAG = 32000 , COMM_DIE_TAG , COMM_SEND_TAG } |
enum | CommCodes { COMM_ANY_NODE = (-1) , COMM_ANY_TAG = (-1) } |
Protected Types inherited from Communicate | |
typedef long | MsgNum_t |
typedef std::map< MsgNum_t, CommSendInfo > | SentCache_t |
Static Protected Member Functions inherited from Communicate | |
static void * | makebuffer (int size) |
static void | freebuffer (void *buf) |
static unsigned int | wordround (int size) |
static void | addwordround (void *&pos, int size) |
static void | pack (void *packdata, void *&pos, int size) |
static void | unpack (void *&pos, void *packdata, int size) |
Protected Attributes inherited from Communicate | |
std::vector< MessageData > | recMsgList |
int | TotalNodes |
int | myHost |
int | ErrorStatus |
std::vector< int > | Contexts |
std::vector< std::vector< int > > | Processes |
MsgNum_t | nextMsgNum |
SentCache_t | sentMsgCache |
std::vector< MsgNum_t > | resendList |
std::vector< MsgNum_t > | sentOKList |
std::vector< std::pair< int, MsgNum_t > > | informOKList |
std::vector< std::pair< int, MsgNum_t > > | requestList |
CommMPI::CommMPI | ( | int & | argc, |
char **& | argv, | ||
int | procs = (-1) , |
||
bool | mpiinit = true , |
||
MPI_Comm | mpicomm = MPI_COMM_WORLD |
||
) |
Definition at line 67 of file CommMPI.cpp.
References IpplInfo::abort(), communicator, ERRORMSG, INFOMSG, Communicate::myHost, Communicate::TotalNodes, and weInitialized.
|
virtual |
Definition at line 215 of file CommMPI.cpp.
References Communicate::COMM_ANY_NODE, Communicate::COMM_ANY_TAG, Communicate::COMM_DIE_TAG, Communicate::COMM_SEND_TAG, communicator, endl(), IPPL_ABORT_TAG, IPPL_EXIT_TAG, Communicate::myNode(), myreceive(), Communicate::TotalNodes, WARNMSG, and weInitialized.
|
virtual |
Reimplemented from Communicate.
Definition at line 544 of file CommMPI.cpp.
References Communicate::freebuffer().
Referenced by mysend().
|
protectedvirtual |
Reimplemented from Communicate.
Definition at line 502 of file CommMPI.cpp.
References communicator.
|
protectedvirtual |
Reimplemented from Communicate.
Definition at line 413 of file CommMPI.cpp.
References communicator, endl(), ERRORMSG, MAX_MPI_ERRS, and Communicate::TotalNodes.
Referenced by ~CommMPI().
|
protectedvirtual |
Reimplemented from Communicate.
Definition at line 311 of file CommMPI.cpp.
References Communicate::add_msg(), cleanupMessage(), communicator, Communicate::freebuffer(), IpplMessageCounter::getInstance(), Communicate::makebuffer(), pack_message(), PACKSIZE, IpplMessageCounter::registerMessage(), IpplInfo::retransmit(), Communicate::unpack_message(), and Message::useCommunicate().
|
inlinevirtual |
Reimplemented from Communicate.
|
private |
Definition at line 289 of file CommMPI.cpp.
References Communicate::find_msg_length(), Communicate::makebuffer(), and PACKSIZE.
Referenced by mysend().
|
virtual |
Reimplemented from Communicate.
Definition at line 586 of file CommMPI.cpp.
References Communicate::COMM_ANY_NODE, Communicate::COMM_ANY_TAG, and communicator.
|
virtual |
Reimplemented from Communicate.
Definition at line 559 of file CommMPI.cpp.
References communicator, IpplMessageCounter::getInstance(), and IpplMessageCounter::registerMessage().
|
virtual |
Reimplemented from Communicate.
Definition at line 599 of file CommMPI.cpp.
References Communicate::COMM_ANY_NODE, Communicate::COMM_ANY_TAG, and communicator.
|
virtual |
Reimplemented from Communicate.
Definition at line 569 of file CommMPI.cpp.
References Communicate::COMM_ANY_NODE, Communicate::COMM_ANY_TAG, and communicator.
|
virtual |
Reimplemented from Communicate.
Definition at line 551 of file CommMPI.cpp.
References communicator, IpplMessageCounter::getInstance(), and IpplMessageCounter::registerMessage().
|
protectedvirtual |
Reimplemented from Communicate.
Definition at line 511 of file CommMPI.cpp.
References communicator, IpplMessageCounter::getInstance(), Communicate::myNode(), PInsist, and IpplMessageCounter::registerMessage().
|
private |
Definition at line 96 of file CommMPI.h.
Referenced by CommMPI(), mybarrier(), myreceive(), mysend(), raw_ireceive(), raw_isend(), raw_probe_receive(), raw_receive(), raw_send(), resend(), and ~CommMPI().
|
private |
Definition at line 99 of file CommMPI.h.
Referenced by CommMPI(), and ~CommMPI().