|
OPAL (Object Oriented Parallel Accelerator Library)
2.2.0
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) |
| 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 int | broadcast_all (Message *, int) |
| virtual int | broadcast_others (Message *, int, bool delmsg=true) |
| void | barrier (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 &) |
| 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 77 of file CommMPI.cpp.
References IpplInfo::abort(), Communicate::COMM_HOSTS_TAG, communicator, Communicate::Contexts, endl(), ERRORMSG, INFOMSG, Communicate::myHost, Communicate::Processes, Communicate::TotalNodes, WARNMSG, and weInitialized.

|
virtual |
Definition at line 225 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 559 of file CommMPI.cpp.
References Communicate::freebuffer().
Referenced by myreceive(), and mysend().

|
protectedvirtual |
Reimplemented from Communicate.
Definition at line 517 of file CommMPI.cpp.
References communicator.
|
protectedvirtual |
Reimplemented from Communicate.
Definition at line 423 of file CommMPI.cpp.
References IpplInfo::abort(), cleanupMessage(), communicator, DEBUGMSG, endl(), ERRORMSG, level2(), Communicate::makebuffer(), MAX_MPI_ERRS, Communicate::TotalNodes, Communicate::unpack_message(), and Message::useCommunicate().
Referenced by ~CommMPI().

|
protectedvirtual |
Reimplemented from Communicate.
Definition at line 321 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 299 of file CommMPI.cpp.
References Communicate::fill_msg_buffer(), Communicate::find_msg_length(), Communicate::makebuffer(), and PACKSIZE.
Referenced by mysend().

|
virtual |
Reimplemented from Communicate.
Definition at line 601 of file CommMPI.cpp.
References Communicate::COMM_ANY_NODE, Communicate::COMM_ANY_TAG, and communicator.
|
virtual |
Reimplemented from Communicate.
Definition at line 574 of file CommMPI.cpp.
References communicator, IpplMessageCounter::getInstance(), and IpplMessageCounter::registerMessage().

|
virtual |
Reimplemented from Communicate.
Definition at line 614 of file CommMPI.cpp.
References Communicate::COMM_ANY_NODE, Communicate::COMM_ANY_TAG, and communicator.
|
virtual |
Reimplemented from Communicate.
Definition at line 584 of file CommMPI.cpp.
References Communicate::COMM_ANY_NODE, Communicate::COMM_ANY_TAG, and communicator.
|
virtual |
Reimplemented from Communicate.
Definition at line 566 of file CommMPI.cpp.
References communicator, IpplMessageCounter::getInstance(), and IpplMessageCounter::registerMessage().

|
protectedvirtual |
Reimplemented from Communicate.
Definition at line 526 of file CommMPI.cpp.
References communicator, IpplMessageCounter::getInstance(), Communicate::myNode(), PInsist, and IpplMessageCounter::registerMessage().

|
private |
Definition at line 94 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 97 of file CommMPI.h.
Referenced by CommMPI(), and ~CommMPI().
1.8.5