OPAL (Object Oriented Parallel Accelerator Library)
2.2.0
OPAL
|
#include <CommSHMEMPI.h>
Public Member Functions | |
CommSHMEMPI (int &argc, char **&argv, int procs=(-1)) | |
virtual | ~CommSHMEMPI (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 | |
void * | pack_message (Message *msg, int tag, int &buffsize) |
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 |
Definition at line 30 of file CommSHMEMPI.h.
CommSHMEMPI::CommSHMEMPI | ( | int & | argc, |
char **& | argv, | ||
int | procs = (-1) |
||
) |
Definition at line 62 of file CommSHMEMPI.cpp.
References IpplInfo::abort(), Communicate::COMM_HOSTS_TAG, Communicate::Contexts, endl(), ERRORMSG, INFOMSG, Communicate::myHost, Communicate::Processes, Communicate::TotalNodes, and WARNMSG.
|
virtual |
Definition at line 187 of file CommSHMEMPI.cpp.
References Communicate::COMM_ANY_NODE, Communicate::COMM_ANY_TAG, Communicate::COMM_DIE_TAG, Communicate::COMM_SEND_TAG, endl(), IPPL_ABORT_TAG, IPPL_EXIT_TAG, Communicate::myNode(), myreceive(), Communicate::TotalNodes, and WARNMSG.
|
virtual |
Reimplemented from Communicate.
Definition at line 442 of file CommSHMEMPI.cpp.
References Communicate::freebuffer().
|
protectedvirtual |
Reimplemented from Communicate.
Definition at line 432 of file CommSHMEMPI.cpp.
|
protectedvirtual |
Reimplemented from Communicate.
Definition at line 351 of file CommSHMEMPI.cpp.
References IpplInfo::abort(), DEBUGMSG, endl(), ERRORMSG, level2(), Communicate::makebuffer(), MAX_SHMEMPI_ERRS, Communicate::TotalNodes, Communicate::unpack_message(), and Message::useCommunicate().
Referenced by ~CommSHMEMPI().
|
protectedvirtual |
Reimplemented from Communicate.
Definition at line 269 of file CommSHMEMPI.cpp.
References Communicate::add_msg(), Communicate::freebuffer(), Communicate::makebuffer(), pack_message(), PACKSIZE, Message::size(), Communicate::unpack_message(), and Message::useCommunicate().
|
inlinevirtual |
Reimplemented from Communicate.
Definition at line 43 of file CommSHMEMPI.h.
|
private |
Definition at line 248 of file CommSHMEMPI.cpp.
References Communicate::fill_msg_buffer(), Communicate::find_msg_length(), Communicate::makebuffer(), and PACKSIZE.
Referenced by mysend().