OPAL (Object Oriented Parallel Accelerator Library)
2.2.0
OPAL
|
#include <CommPM.h>
Public Member Functions | |
CommPM (int &argc, char **&argv, int procs=(-1)) | |
virtual | ~CommPM (void) |
virtual const char * | name () const |
virtual void | cleanupMessage (void *) |
![]() | |
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 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) |
![]() | |
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) |
![]() | |
bool | add_msg (Message *, int, int) |
Message * | find_msg (int &, int &) |
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 | |
int | pickup_message (void) |
Additional Inherited Members | |
![]() | |
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) } |
![]() | |
typedef long | MsgNum_t |
typedef std::map< MsgNum_t, CommSendInfo > | SentCache_t |
![]() | |
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) |
![]() | |
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 |
CommPM::CommPM | ( | int & | argc, |
char **& | argv, | ||
int | procs = (-1) |
||
) |
Definition at line 78 of file CommPM.cpp.
References _pm_subnet, _pm_subnet_count, IpplInfo::abort(), Communicate::COMM_HOSTS_TAG, Communicate::Contexts, endl(), ERRORMSG, INFOMSG, Communicate::myHost, Communicate::Processes, Communicate::TotalNodes, and WARNMSG.
|
virtual |
Definition at line 213 of file CommPM.cpp.
References Communicate::COMM_ANY_NODE, Communicate::COMM_ANY_TAG, Communicate::COMM_DIE_TAG, Communicate::COMM_SEND_TAG, endl(), Communicate::myNode(), myreceive(), Communicate::TotalNodes, and WARNMSG.
|
virtual |
Reimplemented from Communicate.
Definition at line 477 of file CommPM.cpp.
References Communicate::freebuffer().
|
protectedvirtual |
Reimplemented from Communicate.
Definition at line 467 of file CommPM.cpp.
|
protectedvirtual |
Reimplemented from Communicate.
Definition at line 417 of file CommPM.cpp.
References _pmPutReceiveBuf(), _pmReceive(), DEBUGMSG, endl(), ERRORMSG, level2(), Communicate::makebuffer(), PM_Message::node, PM_Message::tag, Communicate::unpack_message(), and Message::useCommunicate().
Referenced by ~CommPM().
|
protectedvirtual |
Reimplemented from Communicate.
Definition at line 305 of file CommPM.cpp.
References _pmGetSendBuf(), _pmSend(), _pmSendDone(), ERRORMSG, Communicate::fill_msg_buffer(), Communicate::find_msg_length(), Communicate::myHost, PM_Message::node, pickup_message(), and PM_Message::tag.
|
inlinevirtual |
Reimplemented from Communicate.
|
private |
Definition at line 359 of file CommPM.cpp.
References _pmPutReceiveBuf(), _pmReceive(), Communicate::add_msg(), ERRORMSG, Communicate::makebuffer(), PM_Message::node, PM_Message::tag, Communicate::unpack_message(), and Message::useCommunicate().
Referenced by mysend().