OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
Public Member Functions | Protected Member Functions | Private Member Functions | List of all members
CommSHMEMPI Class Reference

#include <CommSHMEMPI.h>

Inheritance diagram for CommSHMEMPI:
Inheritance graph
[legend]
Collaboration diagram for CommSHMEMPI:
Collaboration graph
[legend]

Public Member Functions

 CommSHMEMPI (int &argc, char **&argv, int procs=(-1))
 
virtual ~CommSHMEMPI (void)
 
virtual const char * name () const
 
virtual void cleanupMessage (void *)
 
- 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)
 
Messagereceive (int &node, int &tag)
 
Messagereceive_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)
 
- 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 Messagemyreceive (int &node, int &tag, int etag)
 
virtual void mybarrier (void)
 
- Protected Member Functions inherited from Communicate
bool add_msg (Message *, int, int)
 
Messagefind_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)
 
Messageunpack_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

- 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< MessageDatarecMsgList
 
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_tresendList
 
std::vector< MsgNum_tsentOKList
 
std::vector< std::pair< int,
MsgNum_t > > 
informOKList
 
std::vector< std::pair< int,
MsgNum_t > > 
requestList
 

Detailed Description

Definition at line 30 of file CommSHMEMPI.h.

Constructor & Destructor Documentation

CommSHMEMPI::CommSHMEMPI ( int &  argc,
char **&  argv,
int  procs = (-1) 
)
CommSHMEMPI::~CommSHMEMPI ( void  )
virtual

Member Function Documentation

void CommSHMEMPI::cleanupMessage ( void *  d)
virtual

Reimplemented from Communicate.

Definition at line 442 of file CommSHMEMPI.cpp.

References Communicate::freebuffer().

Here is the call graph for this function:

void CommSHMEMPI::mybarrier ( void  )
protectedvirtual

Reimplemented from Communicate.

Definition at line 432 of file CommSHMEMPI.cpp.

Message * CommSHMEMPI::myreceive ( int &  node,
int &  tag,
int  etag 
)
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().

Here is the call graph for this function:

bool CommSHMEMPI::mysend ( Message msg,
int  node,
int  utag,
int  etag 
)
protectedvirtual
virtual const char* CommSHMEMPI::name ( ) const
inlinevirtual

Reimplemented from Communicate.

Definition at line 43 of file CommSHMEMPI.h.

void * CommSHMEMPI::pack_message ( Message msg,
int  tag,
int &  buffsize 
)
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().

Here is the call graph for this function:


The documentation for this class was generated from the following files: