PPL Logo

ComlibSectionInfo Class Reference
[Charm++ Communication Optimization Framework]

Helps a communication library strategy manage array sections, creating unique identifiers for sections, and parsing messages. More...

#include <ComlibSectionInfo.h>

Collaboration diagram for ComlibSectionInfo:

Collaboration graph
[legend]

Public Member Functions

 ComlibSectionInfo ()
void initSectionID (CkSectionID *sid)
 Create a unique identifier for the supplied CkSectionID.
void processOldSectionMessage (CharmMessageHolder *cmsg)
CkMcastBaseMsggetNewDeliveryErrorMsg (CkMcastBaseMsg *base)
 Create a new message to be sent to the root processor of this broadcast to tell it that we missed some objects during delivery.
ComlibMulticastMsggetNewMulticastMessage (CharmMessageHolder *cmsg, int needSort, int instanceID)
 Starting from a message to be sent, it generates a new message containing the information about the multicast, together with the message itself.
void unpack (envelope *cb_env, int &nLocalElems, CkArrayIndex *&destIndices, envelope *&env)
 Given a ComlibMulticastMsg arrived through the network as input (cb_env), separate it into its basic components.
void localMulticast (envelope *env)
void getPeCount (int nindices, CkArrayIndex *idxlist, const CkArrayID &destArrayID, int &npes, int &nidx, ComlibMulticastIndexCount *&counts, int *&belongs)
 Returns the number of remote procs involved in the array index list, the number of elements each proc has, and the mapping between indices and procs.
void getPeList (envelope *cb_env, int npes, int *&pelist)
void getRemotePelist (int nindices, CkArrayIndex *idxlist, CkArrayID &destArrayID, int &npes, int *&pelist)
 Returns the list of remote procs (therefore not including our processor) involved in the array index list.
void getPeList (int nindices, CkArrayIndex *idxlist, CkArrayID &destArrayID, int &npes, int *&pelist)
 Returns the same list as getRemotePeList, only that it does not exclude the local processor from the list if it is involved.
void getLocalIndices (int nindices, CkArrayIndex *idxlist, CkArrayID &destArrayID, CkVec< CkArrayIndex > &idx_vec)
void getNodeLocalIndices (int nindices, CkArrayIndex *idxlist, CkArrayID &destArrayID, CkVec< CkArrayIndex > &idx_vec)
void pup (PUP::er &p)

Private Attributes

int MaxSectionID
 Maximum section id used so far.

Detailed Description

Helps a communication library strategy manage array sections, creating unique identifiers for sections, and parsing messages.

The class maintains a counter for generating unique ids for each section. It also provides utility functions that can extract information such as PE lists from messages.

Definition at line 120 of file ComlibSectionInfo.h.


Field Documentation

Maximum section id used so far.

Incremented for each new CkSectionID that gets created. Will be used (along with the source PE) to access a hashtable on remote processors, when looking up persistent data for the section.

Definition at line 125 of file ComlibSectionInfo.h.

Referenced by getNewMulticastMessage().


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

Generated on Fri May 25 08:02:46 2012 for Charm++ by  doxygen 1.5.5