PPL Logo

ck-core/charm.h File Reference

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

Go to the source code of this file.

Data Structures

struct  CkChareID
struct  _ckGroupID
struct  _ckSemaID

Typedefs

typedef void *(* CkPackFnPtr )(void *msg)
 Message pack function: convert a message into a buffer.
typedef void *(* CkUnpackFnPtr )(void *buf)
 Message unpack function: convert a buffer into a message.
typedef void(* CkDeallocFnPtr )(void *msg)
 Message dealloc function: deletes a message.
typedef void(* CkCallFnPtr )(void *msg, void *obj)
 A "call function" to invoke a method on an object.
typedef void(* CkPupReadonlyFnPtr )(void *pup_er)
 This function pup's a global variable.
typedef int(* CkMarshallUnpackFn )(char *marshall_buf, void *object)
 A "marshall unpack" function: pups out parameters and calls a method.
typedef void(* CkMessagePupFn )(PUP::er &p, void *userMessage)
 A "message pup" function: pups message data for debugger display.
typedef struct _ckGroupID CkGroupID
typedef CkGroupID CkNodeGroupID
typedef struct envelope envelope
typedef struct _ckSemaID CkSemaID

Enumerations

enum  ChareType {
  TypeInvalid = 0, TypeChare, TypeMainChare, TypeGroup,
  TypeNodeGroup, TypeArray
}
 type of a chare More...
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 CkExit (void)
char ** CkGetArgv (void)
int CkGetArgc (void)
void * CkAllocSysMsg (void)
void CkFreeSysMsg (void *msg)
void * CkAllocMsg (int msgIdx, int msgBytes, int prioBits)
void * CkAllocBuffer (void *msg, int bufsize)
void CkFreeMsg (void *msg)
void * CkCopyMsg (void **pMsg)
void CkSetQueueing (void *msg, int strategy)
void * CkPriorityPtr (void *msg)
int CkRegisterMsg (const char *name, CkPackFnPtr pack, CkUnpackFnPtr unpack, CkDeallocFnPtr dealloc, size_t size)
 Register this message name, with this basic size and pack and unpack functions.
int CkRegisterEp (const char *name, CkCallFnPtr call, int msgIdx, int chareIdx, int ck_ep_flags)
 Register this entry point, with this call function and flags.
int CkRegisterChare (const char *name, size_t dataSz, ChareType chareType)
 Register this type of chare (group, or array), with this size.
void CkRegisterChareInCharm (int chareIndex)
 Register this chare as internal to Charm++.
int CkRegisterMainChare (int chareIndex, int epIndex)
 Register this chare as a mainchare, with this entry point as its constructor.
void CkRegisterDefaultCtor (int chareIndex, int ctorEpIndex)
 Register a default constructor for this chare.
void CkRegisterMigCtor (int chareIndex, int ctorEpIndex)
 Register a migration constructor for this chare.
void CkRegisterGroupIrr (int chareIndex, int isIrr)
 Indicate whether this group is an IrrGroup.
void CkRegisterBase (int derivedIdx, int baseIdx)
 Register the chare baseIdx as a base class of the chare derivedIdx.
void CkRegisterReadonly (const char *name, const char *type, int size, void *ptr, CkPupReadonlyFnPtr pup_fn)
 Register this readonly global variable.
void CkRegisterReadonlyMsg (const char *name, const char *type, void **pMsg)
 Register this readonly message.
void CkRegisterMarshallUnpackFn (int epIndex, CkMarshallUnpackFn m)
 Register this marshall unpack function with this entry point.
CkMarshallUnpackFn CkLookupMarshallUnpackFn (int epIndex)
 Lookup the marshall unpack function, if any, for this entry point.
void CkRegisterMessagePupFn (int epIndex, CkMessagePupFn m)
 Register this message pup function with this entry point.
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)
CkSemaID CkSemaCreate (void)
void * CkSemaWait (CkSemaID id)
void CkSemaWaitN (CkSemaID id, int n, void *marray[])
void CkSemaSignal (CkSemaID id, void *m)
void CkSemaDestroy (CkSemaID id)
void CkStartQD (int eIdx, const CkChareID *chare)
 When quiescence occurs, send a message to this entry point of this Chare.
void CkWaitQD (void)
 Block until quiescence occurs.
int CkMessageToEpIdx (void *msg)
void CkPrintEntryMethod (int epIdx)
void CkPrintChareName (int chareIdx)
void CkSummary_MarkEvent (int)
 function call for adding an event mark
void CkSummary_StartPhase (int)
 function call for starting a phase in trace summary logs
int CkDisableTracing (int epIdx)
void CkEnableTracing (int epIdx)


Detailed Description

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

Definition in file charm.h.


Typedef Documentation

typedef struct _ckSemaID CkSemaID


Function Documentation

char** CkGetArgv ( void   ) 

int CkGetArgc ( void   ) 

Definition at line 561 of file ck.C.

References CmiGetArgc().

Referenced by armciLibStart(), FTN_NAME(), and PUPfunctionpointer().

void* CkAllocSysMsg ( void   ) 

void CkFreeSysMsg ( void *  msg  ) 

Definition at line 13 of file msgalloc.C.

Referenced by CkPupChareData(), and migrationDone().

void* CkAllocMsg ( int  msgIdx,
int  msgBytes,
int  prioBits 
)

void* CkAllocBuffer ( void *  msg,
int  bufsize 
)

void CkFreeMsg ( void *  msg  ) 

Definition at line 50 of file msgalloc.C.

References CmiFree(), and UsrToEnv().

Referenced by _handlePhase0(), _handlePhase1(), _handlePhase2(), _initCharm(), LBgroup::balance(), PVT::beginCheckpoint(), PVT::beginLoadbalancing(), edge::buildLockingCloud(), sim::Cancel(), elemRef::checkIfLongEdge(), sim::CheckpointStep(), chunk::chunk(), CkWaitVoidFuture(), GVT::computeGVT(), CharmStrategy::deliverToIndices(), EventMsgPool::EventMsgPool(), chunk::findRemoteNeighbor(), element::flip23remote(), element::flip32remote(), edge::flipPrevent(), edgeRef::flipPrevent(), nodeRef::get(), elemRef::getArea(), edgeRef::getBoundary(), edgeRef::getNbr(), element::getNeighbor(), elemRef::getVolume(), chunk::getVolume(), elemRef::hasDependent(), MulticastStrategy::insertMessage(), CkMemCheckPT::isMaster(), edgeRef::isPending(), chunk::LEsplit(), edgeRef::lock(), chunk::lockArc(), edgeRef::locked(), element::lockLF(), chunk::newMesh(), prioMsg::operator delete(), cancelMsg::operator delete(), eventMsg::operator delete(), Stats::operator delete(), CkArrayMessage::operator delete(), CkQdMsg::operator delete(), ConfigurableRRMap::populateInitial(), CldMap::populateInitial(), BlockMap::populateInitial(), CkArrayMap::populateInitial(), PUPbytes(), LineFFTArray::receiveFFTMessage(), LineFFTArray::receiveGridMessage(), LBstrategy::recvLoadReport(), element::refineCP(), element::refineLE(), element::refineLF(), chunk::relocationVote(), element::remove32element(), chunk::removeElement(), chunk::removeNode(), PVT::reportReduce(), chunk::resetTargetVolume(), PVT::resumeAfterCheckpoint(), PVT::resumeAfterLB(), CkCallback::send(), PVT::setGVT(), chunk::setTargetVolume(), edge::split(), edgeRef::split(), sim::Step(), ChildInitMsg::unpack(), NeighborMsg::unpack(), chunk::updateNodeCoord(), chunk::updateNodeCoords(), CkCallbackResumeThread::~CkCallbackResumeThread(), and CkMarshalledMessage::~CkMarshalledMessage().

void* CkCopyMsg ( void **  pMsg  ) 

void CkSetQueueing ( void *  msg,
int  strategy 
)

void* CkPriorityPtr ( void *  msg  ) 

int CkMessageToEpIdx ( void *  msg  ) 

void CkPrintEntryMethod ( int  epIdx  ) 

void CkPrintChareName ( int  chareIdx  ) 

Definition at line 225 of file register.C.

References c, ChareInfo::name, and CkRegisteredInfo< T >::size().

Referenced by CkPrintEntryMethod().

int CkDisableTracing ( int  epIdx  ) 

Definition at line 138 of file register.C.

References CmiFalse.

Referenced by _ckArrayInit(), _CkLocMgrInit(), and CkSendMsgArrayInline().

void CkEnableTracing ( int  epIdx  ) 

Definition at line 145 of file register.C.

References CmiTrue.

Referenced by CkSendMsgArrayInline().


Generated on Wed May 23 08:06:39 2012 for Charm++ by  doxygen 1.5.5