PPL Logo

Ck

Charm Kernel--the groups and chares level of Charm++. More...

Data Structures

struct  CkChareID
struct  _ckGroupID

Typedefs

typedef struct _ckGroupID CkGroupID
typedef CkGroupID CkNodeGroupID
typedef struct envelope envelope

Enumerations

enum  CkEnvelopeType {
  NewChareMsg = 1, NewVChareMsg = 2, BocInitMsg = 3, ForChareMsg = 4,
  ForBocMsg = 5, ForVidMsg = 6, FillVidMsg = 7, DeleteVidMsg = 8,
  RODataMsg = 9, ROMsgMsg = 10, StartExitMsg = 11, ExitMsg = 12,
  ReqStatMsg = 13, StatMsg = 14, NodeBocInitMsg = 15, ForNodeBocMsg = 16,
  ArrayEltInitMsg = 17, ForArrayEltMsg = 18, LAST_CK_ENVELOPE_TYPE = 19
}

Functions

void CkCreateChare (int chareIdx, int constructorIdx, void *msg, CkChareID *vid, int destPE)
CkGroupID CkCreateGroup (int chareIdx, int constructorIdx, void *msg)
CkGroupID CkCreateNodeGroup (int chareIdx, int constructorIdx, void *msg)
void CkCreateLocalGroup (CkGroupID groupID, int constructorIdx, envelope *env)
void CkCreateLocalNodeGroup (CkGroupID groupID, int constructorIdx, envelope *env)
void CkSendMsg (int entryIndex, void *msg, const CkChareID *chare, int opts CK_MSGOPTIONAL)
void CkSendMsgBranch (int eIdx, void *msg, int destPE, CkGroupID gID, int opts CK_MSGOPTIONAL)
void CkSendMsgInline (int entryIndex, void *msg, const CkChareID *chare, int opts CK_MSGOPTIONAL)
void CkSendMsgBranchInline (int eIdx, void *msg, int destPE, CkGroupID gID, int opts CK_MSGOPTIONAL)
void CkSendMsgBranchMulti (int eIdx, void *msg, CkGroupID gID, int npes, int *pes, int opts CK_MSGOPTIONAL)
void CkSendMsgBranchGroup (int eIdx, void *msg, CkGroupID gID, CmiGroup grp, int opts CK_MSGOPTIONAL)
void CkSendMsgNodeBranch (int eIdx, void *msg, int destNode, CkGroupID gID, int opts CK_MSGOPTIONAL)
void CkSendMsgNodeBranchInline (int eIdx, void *msg, int destNode, CkGroupID gID, int opts CK_MSGOPTIONAL)
void CkSendMsgNodeBranchMulti (int eIdx, void *msg, CkGroupID gID, int npes, int *nodes, int opts CK_MSGOPTIONAL)
void CkBroadcastMsgBranch (int eIdx, void *msg, CkGroupID gID, int opts CK_MSGOPTIONAL)
void CkBroadcastMsgNodeBranch (int eIdx, void *msg, CkGroupID gID, int opts CK_MSGOPTIONAL)
int CkChareMsgPrep (int eIdx, void *msg, const CkChareID *pCid)
void CkGroupMsgPrep (int eIdx, void *msg, CkGroupID gID)
void CkNodeGroupMsgPrep (int eIdx, void *msg, CkGroupID gID)
void CkSetRefNum (void *msg, CMK_REFNUM_TYPE ref)
CMK_REFNUM_TYPE CkGetRefNum (void *msg)
int CkGetSrcPe (void *msg)
int CkGetSrcNode (void *msg)
void CkDeliverMessageFree (int epIdx, void *msg, void *object)
void CkDeliverMessageReadonly (int epIdx, const void *msg, void *object)
void * CkLocalBranch (CkGroupID gID)
void * CkLocalNodeBranch (CkGroupID gID)
void * CkLocalChare (const CkChareID *chare)
void CkArrayManagerInsert (int onPe, void *msg, CkGroupID aID)
void CkArrayManagerDeliver (int onPe, void *msg, int opts CK_MSGOPTIONAL)

Detailed Description

Charm Kernel--the groups and chares level of Charm++.

These routines implement a basic remote-method-invocation system consisting of chares and groups.

These routines are implemented in ck.C.

There is no migration. All the bindings are written to the C language, although most clients, including the rest of Charm++, are actually C++.


Typedef Documentation

typedef struct _ckGroupID CkGroupID

Definition at line 195 of file charm.h.

typedef struct envelope envelope

Definition at line 205 of file charm.h.


Enumeration Type Documentation

Enumerator:
NewChareMsg 
NewVChareMsg 
BocInitMsg 
ForChareMsg 
ForBocMsg 
ForVidMsg 
FillVidMsg 
DeleteVidMsg 
RODataMsg 
ROMsgMsg 
StartExitMsg 
ExitMsg 
ReqStatMsg 
StatMsg 
NodeBocInitMsg 
ForNodeBocMsg 
ArrayEltInitMsg 
ForArrayEltMsg 
LAST_CK_ENVELOPE_TYPE 

Definition at line 232 of file charm.h.


Function Documentation

void CkCreateChare ( int  chareIdx,
int  constructorIdx,
void *  msg,
CkChareID vid,
int  destPE 
)

CkGroupID CkCreateGroup ( int  chareIdx,
int  constructorIdx,
void *  msg 
)

CkGroupID CkCreateNodeGroup ( int  chareIdx,
int  constructorIdx,
void *  msg 
)

void CkCreateLocalGroup ( CkGroupID  groupID,
int  constructorIdx,
envelope env 
)

Definition at line 679 of file ck.C.

Referenced by _createGroup(), _processBocInitMsg(), and CkPupGroupData().

void CkCreateLocalNodeGroup ( CkGroupID  groupID,
int  constructorIdx,
envelope env 
)

Definition at line 709 of file ck.C.

Referenced by _createNodeGroup(), _processNodeBocInitMsg(), and CkPupNodeGroupData().

void CkSendMsg ( int  entryIndex,
void *  msg,
const CkChareID chare,
int opts  CK_MSGOPTIONAL 
)

void CkSendMsgBranch ( int  eIdx,
void *  msg,
int  destPE,
CkGroupID  gID,
int opts  CK_MSGOPTIONAL 
)

void CkSendMsgInline ( int  entryIndex,
void *  msg,
const CkChareID chare,
int opts  CK_MSGOPTIONAL 
)

void CkSendMsgBranchInline ( int  eIdx,
void *  msg,
int  destPE,
CkGroupID  gID,
int opts  CK_MSGOPTIONAL 
)

void CkSendMsgBranchMulti ( int  eIdx,
void *  msg,
CkGroupID  gID,
int  npes,
int pes,
int opts  CK_MSGOPTIONAL 
)

Definition at line 1767 of file ck.C.

References _sendMsgBranchMulti(), and CkSendMsgBranchMultiImmediate().

Referenced by CkDelegateMgr::GroupSectionSend().

void CkSendMsgBranchGroup ( int  eIdx,
void *  msg,
CkGroupID  gID,
CmiGroup  grp,
int opts  CK_MSGOPTIONAL 
)

void CkSendMsgNodeBranch ( int  eIdx,
void *  msg,
int  destNode,
CkGroupID  gID,
int opts  CK_MSGOPTIONAL 
)

void CkSendMsgNodeBranchInline ( int  eIdx,
void *  msg,
int  destNode,
CkGroupID  gID,
int opts  CK_MSGOPTIONAL 
)

void CkSendMsgNodeBranchMulti ( int  eIdx,
void *  msg,
CkGroupID  gID,
int  npes,
int nodes,
int opts  CK_MSGOPTIONAL 
)

void CkBroadcastMsgBranch ( int  eIdx,
void *  msg,
CkGroupID  gID,
int opts  CK_MSGOPTIONAL 
)

Definition at line 1799 of file ck.C.

References _sendMsgBranch(), and Converse::CkNumPes().

Referenced by CkDelegateMgr::GroupBroadcast(), and CkCallback::send().

void CkBroadcastMsgNodeBranch ( int  eIdx,
void *  msg,
CkGroupID  gID,
int opts  CK_MSGOPTIONAL 
)

Definition at line 1932 of file ck.C.

References _sendMsgNodeBranch(), and BGConverse::CkNumNodes().

Referenced by CkDelegateMgr::NodeGroupBroadcast(), and CkCallback::send().

int CkChareMsgPrep ( int  eIdx,
void *  msg,
const CkChareID pCid 
)

Definition at line 1941 of file ck.C.

References _prepareMsg().

void CkGroupMsgPrep ( int  eIdx,
void *  msg,
CkGroupID  gID 
)

Definition at line 1944 of file ck.C.

References _prepareMsgBranch(), and ForBocMsg.

void CkNodeGroupMsgPrep ( int  eIdx,
void *  msg,
CkGroupID  gID 
)

Definition at line 1947 of file ck.C.

References _prepareMsgBranch(), and ForNodeBocMsg.

void CkSetRefNum ( void *  msg,
CMK_REFNUM_TYPE  ref 
)

CMK_REFNUM_TYPE CkGetRefNum ( void *  msg  ) 

Definition at line 486 of file ck.C.

References envelope::getRef(), and UsrToEnv().

int CkGetSrcPe ( void *  msg  ) 

Definition at line 492 of file ck.C.

References envelope::getSrcPe(), and UsrToEnv().

Referenced by CkGetSrcNode().

int CkGetSrcNode ( void *  msg  ) 

Definition at line 498 of file ck.C.

References CkGetSrcPe(), and CmiNodeOf().

void CkDeliverMessageFree ( int  epIdx,
void *  msg,
void *  object 
)

Definition at line 566 of file ck.C.

References _entryTable, _msgTable, CpdAfterEp(), and CpdBeforeEp().

Referenced by _invokeEntryNoTrace(), and CkLocRec_local::invokeEntry().

void CkDeliverMessageReadonly ( int  epIdx,
const void *  msg,
void *  object 
)

Definition at line 587 of file ck.C.

References _entryTable, CkCopyMsg(), CpdAfterEp(), and CpdBeforeEp().

Referenced by CkLocRec_local::invokeEntry().

void* CkLocalBranch ( CkGroupID  gID  ) 

void* CkLocalNodeBranch ( CkGroupID  gID  ) 

Definition at line 517 of file ck.C.

References _ckLocalNodeBranch(), and CsdScheduler().

Referenced by CProxy::ckDelegatedTo().

void* CkLocalChare ( const CkChareID chare  ) 

Definition at line 531 of file ck.C.

References Converse::CkMyPe(), VidBlock::getLocalChareObj(), CkChareID::objPtr, and CkChareID::onPE.

Referenced by CkObjID::getObject().

void CkArrayManagerInsert ( int  onPe,
void *  msg,
CkGroupID  aID 
)

void CkArrayManagerDeliver ( int  onPe,
void *  msg,
int opts  CK_MSGOPTIONAL 
)


Generated on Sun Feb 12 08:01:56 2012 for Charm++ by  doxygen 1.5.5