PPL Logo

CkInit

Controls the Charm++ startup process. More...

Typedefs

typedef void(* CkFtFn )(const char *, CkArgMsg *)
typedef void(* CkExitFn )(void)

Functions

void CkRestartMain (const char *dirname)
void calculateTotalHops (int pe1, int pe2, int size)
void printTotalHops ()
 CksvDeclare (UInt, _numInitNodeMsgs)
 Count the number of nodegroups that have been created in mainchares.
 CksvDeclare (int, _triggersSent)
 CkpvDeclare (void *, _currentChare)
 CkpvDeclare (int, _currentChareType)
 CkpvDeclare (CkGroupID, _currentGroup)
 CkpvDeclare (void *, _currentNodeGroupObj)
 CkpvDeclare (CkGroupID, _currentGroupRednMgr)
 CkpvDeclare (GroupTable *, _groupTable)
 CkpvDeclare (GroupIDTable *, _groupIDTable)
 CkpvDeclare (CmiImmediateLockType, _groupTableImmLock)
 CkpvDeclare (UInt, _numGroups)
 CkpvDeclare (CkCoreState *, _coreState)
 CksvDeclare (UInt, _numNodeGroups)
 CksvDeclare (GroupTable *, _nodeGroupTable)
 CksvDeclare (GroupIDTable, _nodeGroupIDTable)
 CksvDeclare (CmiImmediateLockType, _nodeGroupTableImmLock)
 CksvDeclare (CmiNodeLock, _nodeLock)
 CksvStaticDeclare (PtrVec *, _nodeBocInitVec)
 CkpvDeclare (int, _charmEpoch)
 CkpvDeclare (Stats *, _myStats)
 CkpvDeclare (MsgPool *, _msgPool)
 CkpvDeclare (_CkOutStream *, _ckout)
 CkpvDeclare (_CkErrStream *, _ckerr)
 CkpvStaticDeclare (int, _numInitsRecd)
 CkpvStaticDeclare (PtrQ *, _buffQ)
 CkpvStaticDeclare (PtrVec *, _bocInitVec)
void _libExitHandler (envelope *env)
 CpvCExtern (char *, _validProcessors)
 CkpvDeclare (char, startedEvac)
void readKillFile ()
void processRaiseEvacFile (char *raiseEvacFile)
static void _parseCommandLineOpts (char **argv)
static void _bufferHandler (void *msg)
static void _discardHandler (envelope *env)
static void _printStats (void)
static void _sendStats (void)
void _messageLoggingExit ()
 Function to wrap up performance information.
void _skipCldHandler (void *converseMsg)
void _discard_charm_message ()
void _resume_charm_message ()
static void _exitHandler (envelope *env)
static void _processBufferedBocInits (void)
 Create all groups in this processor (not called on processor zero).
static void _processBufferedNodeBocInits (void)
 Create all nodegroups in this node (called only by rank zero, and never on node zero).
static void _processBufferedMsgs (void)
static int _charmLoadEstimator (void)
static void _sendTriggers (void)
 This function is used to send other processors on the same node a signal so they can check if their _initDone can be called: the reason for this is that the check at the end of _initHandler can fail due to a missing message containing a Nodegroup creation.
void _initDone (void)
 This function (not a handler) is called once and only once per processor.
static void _triggerHandler (envelope *env)
 Converse handler receiving a signal from another processors in the same node.
static void _processROMsgMsg (envelope *env)
static void _processRODataMsg (envelope *env)
static void _roRestartHandler (void *msg)
 This is similar to the _initHandler, only that the Groups and Nodegroups are initialized from disk, so only one single message is expected.
static void _initHandler (void *msg, CkCoreState *ck)
 This handler is used only during initialization.
void _CkExit (void)
void CkExit (void)
void EmergencyExit (void)
static void _nullFn (void *, void *)
void _registerLBDatabase (void)
void _registerPathHistory (void)
void _registerControlPoints (void)
void _registerTraceControlPoints ()
void _registerExternalModules (char **argv)
void _ckModuleInit (void)
void _loadbalancerInit ()
void _initChareTables ()
void init_memcheckpt (char **argv)
void initCharmProjections ()
void CmiInitCPUTopology (char **argv)
void CmiInitCPUAffinity (char **argv)
void CmiInitMemAffinity (char **argv)
void CmiInitPxshm (char **argv)
void TopoManager_init ()
void _registerInitCall (CkInitCallFn fn, int isNodeCall)
 CpvCExtern (int, cpdSuspendStartup)
void CpdFreeze (void)
void initQd (char **argv)
void CpdBgInit ()
void CpdBreakPointInit ()
void _initCharm (int unused_argc, char **argv)
 This is the main charm setup routine.
void fmain_ (int *argc, char _argv[][80], int length[])
void registerExitFn (CkExitFn fn)
 CksvExtern (unsigned int, _numInitNodeMsgs)
 CksvExtern (CmiNodeLock, _nodeLock)
 CksvExtern (GroupTable *, _nodeGroupTable)
 CksvExtern (GroupIDTable, _nodeGroupIDTable)
 CksvExtern (CmiImmediateLockType, _nodeGroupTableImmLock)
 CksvExtern (unsigned int, _numNodeGroups)
 CkpvExtern (int, _charmEpoch)
 CkpvExtern (CkGroupID, _currentGroup)
 CkpvExtern (void *, _currentNodeGroupObj)
 CkpvExtern (CkGroupID, _currentGroupRednMgr)
 CkpvExtern (GroupTable *, _groupTable)
 CkpvExtern (GroupIDTable *, _groupIDTable)
 CkpvExtern (CmiImmediateLockType, _groupTableImmLock)
 CkpvExtern (unsigned int, _numGroups)
 CkpvExtern (char **, Ck_argv)
static IrrGroup_localBranch (CkGroupID gID)
void CkRegisterMainModule (void)
 This routine registers the user's main module.
void InitCallTable::enumerateInitCalls ()

Variables

TopoManagertmgr = NULL
 Turn on manually if you want to calculate hops from within Charm++ for some application.
double hops = 0
UChar _defaultQueueing = CK_QUEUEING_FIFO
UInt _printCS = 0
UInt _printSS = 0
UInt _numExpectInitMsgs = 0
 This value has the number of total initialization message a processor awaits.
UInt _numInitMsgs = 0
 This number is used only by processor zero to count how many messages it will send out for the initialization process.
int _infoIdx
int _charmHandlerIdx
int _initHandlerIdx
int _roRestartHandlerIdx
int _bocHandlerIdx
int _qdHandlerIdx
int _qdCommHandlerIdx
int _triggerHandlerIdx
int _mainDone = 0
CkOutStream ckout
CkErrStream ckerr
CkInStream ckin
int _libExitHandlerIdx
int _exitHandlerIdx
static Stats ** _allStats = 0
static int _numStatsRecd = 0
static int _exitStarted = 0
static InitCallTable _initCallTable
static CkFtFn faultFunc = NULL
static char * _restartDir
int teamSize = 1
int chkptPeriod = 1000
bool fastRecovery = false
int parallelRecovery = 1
int BUFFER_TIME
int killFlag
char * killFile
int _defaultObjectQ = 0
int _ringexit = 0
int _ringtoken = 8
static int _raiseEvac = 0
static char * _raiseEvacFile
bool useNodeBlkMapping
int index_skipCldHandler
CkQ< CkExitFn_CkExitFnVec
int _dummy_dq
unsigned int _printCS
unsigned int _printSS
int _infoIdx
int _charmHandlerIdx
int _roRestartHandlerIdx
int _bocHandlerIdx
int _qdHandlerIdx
unsigned int _numInitMsgs
 This number is used only by processor zero to count how many messages it will send out for the initialization process.
CkQ< CkExitFn_CkExitFnVec

Detailed Description

Controls the Charm++ startup process.

These are implemented in init.C.

This file runs the entire Charm++ startup process.

The process begins with every processor finishing the Converse startup process and calling _initCharm. This routine runs almost the entire Charm++ setup process. It begins by setting up various Cpvs and subsystems.

The rank 0 processor of each node then does the Charm++ registration, by calling the various _register routines.

Now processor 0:

  1. Creates each mainchare, by allocating the chares and calling their constructors with argc/argv. This typically results in a number of chare/group creations.
  2. Sends off all readonly data to the other processors.
After _initCharm, processor 0 immediately begins work.

The other processors, however, must wait until they recieve the readonly data and all group creations. They do this by setting the _charmHandlerIdx to a special "_bufferHandler" which simply saves all normal messages into a special queue.

As the startup data (readonlies and group creations) streams into _initHandler, it counts messages until it is fully initialized, then calls _initDone to clean out the queues and resume normal operation.

Upon resume of normal operation, the user code is guaranteed that all readonlies (both data and messages) have been set consistently on all processors, and that the constructors for all nodegroups and groups allocated from a mainchare have been called.

It is not guaranteed the order in which (node)groups allocated outside of a mainchare are constructed, nor that the construction will happen before other messages have been delivered by the scheduler.

Even though not exposed to the final users, the creation order of groups and nodegroups allocated in mainchares is deterministic and respects the following points:

This process should not have race conditions, but it can never be excluded...


Typedef Documentation

typedef void(* CkFtFn)(const char *, CkArgMsg *)

Definition at line 191 of file init.C.

typedef void(* CkExitFn)(void)

Definition at line 161 of file init.h.


Function Documentation

void CkRestartMain ( const char *  dirname  ) 

void calculateTotalHops ( int  pe1,
int  pe2,
int  size 
)

Definition at line 82 of file init.C.

References TopoManager::getHopsBetweenRanks().

void printTotalHops (  ) 

Definition at line 88 of file init.C.

References CmiPrintf().

CksvDeclare ( UInt  ,
_numInitNodeMsgs   
)

Count the number of nodegroups that have been created in mainchares.

Since the nodegroup creation is executed by a single processor in a given node, this value must be seen by all processors in a node.

CksvDeclare ( int  ,
_triggersSent   
)

CkpvDeclare ( void *  ,
_currentChare   
)

CkpvDeclare ( int  ,
_currentChareType   
)

CkpvDeclare ( CkGroupID  ,
_currentGroup   
)

CkpvDeclare ( void *  ,
_currentNodeGroupObj   
)

CkpvDeclare ( CkGroupID  ,
_currentGroupRednMgr   
)

CkpvDeclare ( GroupTable ,
_groupTable   
)

CkpvDeclare ( GroupIDTable ,
_groupIDTable   
)

CkpvDeclare ( CmiImmediateLockType  ,
_groupTableImmLock   
)

CkpvDeclare ( UInt  ,
_numGroups   
)

CkpvDeclare ( CkCoreState ,
_coreState   
)

CksvDeclare ( UInt  ,
_numNodeGroups   
)

CksvDeclare ( GroupTable ,
_nodeGroupTable   
)

CksvDeclare ( GroupIDTable  ,
_nodeGroupIDTable   
)

CksvDeclare ( CmiImmediateLockType  ,
_nodeGroupTableImmLock   
)

CksvDeclare ( CmiNodeLock  ,
_nodeLock   
)

CksvStaticDeclare ( PtrVec ,
_nodeBocInitVec   
)

CkpvDeclare ( int  ,
_charmEpoch   
)

CkpvDeclare ( Stats ,
_myStats   
)

CkpvDeclare ( MsgPool ,
_msgPool   
)

CkpvDeclare ( _CkOutStream ,
_ckout   
)

CkpvDeclare ( _CkErrStream ,
_ckerr   
)

CkpvStaticDeclare ( int  ,
_numInitsRecd   
)

CkpvStaticDeclare ( PtrQ ,
_buffQ   
)

CkpvStaticDeclare ( PtrVec ,
_bocInitVec   
)

void _libExitHandler ( envelope env  ) 

CpvCExtern ( char *  ,
_validProcessors   
)

CkpvDeclare ( char  ,
startedEvac   
)

void readKillFile (  ) 

void processRaiseEvacFile ( char *  raiseEvacFile  ) 

Definition at line 331 of file ckevacuation.C.

References CcdCallFnAfter(), CkDecideEvacPe(), Converse::CkMyPe(), evacMsg::pe, and printf().

Referenced by _initCharm().

static void _parseCommandLineOpts ( char **  argv  )  [inline, static]

static void _bufferHandler ( void *  msg  )  [static]

Definition at line 372 of file init.C.

References Converse::CkMyPe().

Referenced by _initCharm(), and _initHandler().

static void _discardHandler ( envelope env  )  [static]

Definition at line 378 of file init.C.

References CkInRestarting(), Converse::CkMyPe(), and CmiFree().

Referenced by _CkExit(), _discard_charm_message(), _exitHandler(), and _initDone().

static void _printStats ( void   )  [inline, static]

static void _sendStats ( void   )  [inline, static]

void _messageLoggingExit (  ) 

Function to wrap up performance information.

Definition at line 3424 of file ckcausalmlog.C.

References Converse::CkMyPe(), CmiMyPe(), MLOGFT_totalLogSize, MLOGFT_totalMessages, printf(), and totalMsgsSize.

Referenced by _exitHandler().

void _skipCldHandler ( void *  converseMsg  ) 

void _discard_charm_message (  ) 

Definition at line 461 of file init.C.

References _discardHandler().

Referenced by CkMemCheckPT::isMaster().

void _resume_charm_message (  ) 

Definition at line 468 of file init.C.

References _processHandler(), and _skipCldHandler().

Referenced by CkMemCheckPT::isMaster().

static void _exitHandler ( envelope env  )  [static]

static void _processBufferedBocInits ( void   )  [inline, static]

Create all groups in this processor (not called on processor zero).

Notice that only groups created in mainchares are processed here; groups created later are processed as regular messages.

Definition at line 578 of file init.C.

References _processBocInitMsg(), _processHandler(), CkUnpackMessage(), envelope::isPacked(), and CkVec< T >::size().

Referenced by _initDone().

static void _processBufferedNodeBocInits ( void   )  [inline, static]

Create all nodegroups in this node (called only by rank zero, and never on node zero).

Notice that only nodegroups created in mainchares are processed here; nodegroups created later are processed as regular messages.

Definition at line 600 of file init.C.

References _processNodeBocInitMsg(), CkUnpackMessage(), envelope::isPacked(), and CkVec< T >::size().

Referenced by _initDone().

static void _processBufferedMsgs ( void   )  [inline, static]

static int _charmLoadEstimator ( void   )  [static]

Definition at line 633 of file init.C.

Referenced by _initCharm().

static void _sendTriggers ( void   )  [static]

This function is used to send other processors on the same node a signal so they can check if their _initDone can be called: the reason for this is that the check at the end of _initHandler can fail due to a missing message containing a Nodegroup creation.

When that message arrives only one processor will receive it, and thus if no notification is sent to the other processors in the node, they will never proceed.

Definition at line 646 of file init.C.

References _allocEnv(), Converse::CkMyPe(), CmiFree(), CmiNodeFirst(), Converse::CmiSyncSend(), envelope::getTotalsize(), RODataMsg, and envelope::setSrcPe().

Referenced by _initDone().

void _initDone ( void   ) 

This function (not a handler) is called once and only once per processor.

It signals the processor that the initialization is done and regular messages can be processed.

On processor zero it is called by _initCharm, on all other processors either by _initHandler or _triggerHandler (cannot be both). When fault-tolerance is active, it is called by the fault-tolerance scheme itself.

Definition at line 675 of file init.C.

References _discardHandler(), _processBufferedBocInits(), _processBufferedMsgs(), _processBufferedNodeBocInits(), _sendTriggers(), Converse::CkMyPe(), BGConverse::CkMyRank(), and CmiNodeBarrier().

Referenced by _initCharm(), _initHandler(), _recvCheckpointHandler(), _triggerHandler(), CkRestartMain(), and CkMemCheckPT::isMaster().

static void _triggerHandler ( envelope env  )  [static]

Converse handler receiving a signal from another processors in the same node.

(On _sendTrigger there is the explanation of why this is necessary) Simply check if with the NodeGroup processed by another processor we reached the expected count. Notice that it can only be called before _initDone: after _initDone, a message destined for this handler will go instead to the _discardHandler.

Definition at line 700 of file init.C.

References _initDone(), _numExpectInitMsgs, and CmiFree().

Referenced by _initCharm().

static void _processROMsgMsg ( envelope env  )  [inline, static]

Definition at line 710 of file init.C.

References _readonlyMsgs, EnvToUsr(), and envelope::getRoIdx().

Referenced by _initCharm(), and _initHandler().

static void _processRODataMsg ( envelope env  )  [inline, static]

Definition at line 715 of file init.C.

References _readonlyTable, CmiFree(), and EnvToUsr().

Referenced by _initHandler(), and _roRestartHandler().

static void _roRestartHandler ( void *  msg  )  [static]

This is similar to the _initHandler, only that the Groups and Nodegroups are initialized from disk, so only one single message is expected.

It is unclear how Readonly Messages are treated during restart... (if at all considered)

Definition at line 729 of file init.C.

References _numExpectInitMsgs, _processRODataMsg(), Converse::CkMyPe(), and envelope::getCount().

Referenced by _initCharm().

static void _initHandler ( void *  msg,
CkCoreState ck 
) [static]

This handler is used only during initialization.

It receives messages from processor zero regarding Readonly Data (in one single message), Readonly Messages, Groups, and Nodegroups. The Readonly Data message also contains the total number of messages expected during the initialization phase. For Groups and Nodegroups, only messages with epoch=0 (meaning created from within a mainchare) are buffered for special creation, the other messages are buffered together with all the other regular messages by _bufferHandler (and will be flushed after all the initialization messages have been processed).

Definition at line 749 of file init.C.

References _bufferHandler(), _initDone(), _numExpectInitMsgs, _processRODataMsg(), _processROMsgMsg(), BocInitMsg, Converse::CkMyPe(), CkUnpackMessage(), CmiAbort(), CmiMyPe(), CmiWallTimer(), envelope::getCount(), envelope::getGroupEpoch(), envelope::getGroupNum(), envelope::getMsgtype(), _ckGroupID::idx, envelope::isPacked(), NodeBocInitMsg, RODataMsg, ROMsgMsg, and CkCoreState::watcher.

Referenced by _initCharm().

void _CkExit ( void   ) 

void CkExit ( void   ) 

void EmergencyExit ( void   ) 

Definition at line 862 of file init.C.

Referenced by ConverseCommonExit(), machine_exit(), and SendMsgBuf().

static void _nullFn ( void *  ,
void *   
) [static]

Definition at line 872 of file init.C.

References CmiAbort().

Referenced by _initCharm().

void _registerLBDatabase ( void   ) 

Referenced by _initCharm().

void _registerPathHistory ( void   ) 

Referenced by _initCharm().

void _registerControlPoints ( void   ) 

Referenced by _initCharm().

void _registerTraceControlPoints (  ) 

Referenced by _initCharm(), and traceCommonInit().

void _registerExternalModules ( char **  argv  ) 

Referenced by _initCharm().

void _ckModuleInit ( void   ) 

Definition at line 1967 of file ck.C.

References _ObjectQHandler(), _skipCldHandler(), and _TokenHandler().

Referenced by _initCharm().

void _loadbalancerInit (  ) 

void _initChareTables (  ) 

Definition at line 46 of file ck.C.

Referenced by _initCharm().

void init_memcheckpt ( char **  argv  ) 

void initCharmProjections (  ) 

Definition at line 20 of file charmProjections.C.

Referenced by _initCharm().

void CmiInitCPUTopology ( char **  argv  ) 

Definition at line 627 of file cputopology.C.

References LrtsInitCpuTopo().

Referenced by _initCharm().

void CmiInitCPUAffinity ( char **  argv  ) 

void CmiInitMemAffinity ( char **  argv  ) 

void CmiInitPxshm ( char **  argv  ) 

void TopoManager_init (  ) 

Definition at line 440 of file TopoManager.C.

References craynid_init().

Referenced by _initCharm().

void _registerInitCall ( CkInitCallFn  fn,
int  isNodeCall 
)

Definition at line 900 of file init.C.

References InitCallTable::initNodeCalls, and InitCallTable::initProcCalls.

CpvCExtern ( int  ,
cpdSuspendStartup   
)

void CpdFreeze ( void   ) 

Definition at line 127 of file middle-ccs.C.

void initQd ( char **  argv  ) 

void CpdBgInit (  ) 

void CpdBreakPointInit (  ) 

void _initCharm ( int  unused_argc,
char **  argv 
)

This is the main charm setup routine.

It's called on all processors after Converse initialization. This routine gets passed to Converse from "main.C".

The main purpose of this routine is to set up the objects and Ckpv's used during a regular Charm run. See the comment at the top of the file for overall flow.

Definition at line 958 of file init.C.

References CkIndex_Group::__idx, _allocEnv(), _bufferHandler(), _chareTable, _charmLoadEstimator(), _ckAckEvac(), _ckAckEvacIdx, _ckEvacBcast(), _ckEvacBcastIdx, _ckModuleInit(), _Cmi_noprocforcommthread, _entryTable, _exitHandler(), _futuresModuleInit(), _infoFn(), _initChareTables(), _initDone(), _initHandler(), _libExitHandler(), _loadbalancerInit(), _mainTable, _messageLoggingInit(), _nullFn(), _numInitMsgs, _parseCommandLineOpts(), _processHandler(), _processROMsgMsg(), _raiseEvacFile, _readonlyMsgs, _readonlyTable, _registerCkArray(), _registerCkCallback(), _registerControlPoints(), _registerDone(), _registerExternalModules(), _registerInit(), _registerLBDatabase(), _registerPathHistory(), _registerTraceControlPoints(), _replaySystem, _restartDir, _roRestartHandler(), _triggerHandler(), CkArgMsg::argc, CkArgMsg::argv, BGConverse::BgNodeRank(), CcdCallOnCondition(), CkAllocMsg(), CkCallbackInit(), CkDecideEvacPe(), CkFreeMsg(), CkMessageWatcherInit(), CkMlogRestart(), Converse::CkMyPe(), BGConverse::CkMyRank(), Converse::CkNumPes(), CkPackMessage(), CkRegisterChare(), CkRegisterChareInCharm(), CkRegisterEp(), CkRegisterMainModule(), CkRegisterMsg(), CkUnpackMessage(), CldRegisterEstimator(), CldRegisterInfoFn(), CmiArgGroup(), CmiBarrier(), CmiCpuTopologyEnabled(), CmiCreateLock(), CmiGetArgc(), CmiGetArgStringDesc(), CmiGetPesOnPhysicalNode(), CmiInitCPUAffinity(), CmiInitCPUTopology(), CmiInitMemAffinity(), CmiInitPxshm(), CmiMyPe(), CmiMyRank(), CmiNodeAllBarrier(), CmiNumCores(), Converse::CmiSyncBroadcast(), Converse::CmiSyncBroadcastAndFree(), CmiWallTimer(), CpdBgInit(), CpdBreakPointInit(), CpdFinishInitialization(), CpdFreeze(), InitCallTable::enumerateInitCalls(), EnvToUsr(), evacuate, faultFunc, envelope::getTotalsize(), init_memcheckpt(), initCharmProjections(), initQd(), malloc(), memCriticalEntries, msg, numMemCriticalEntries, TopoManager::printAllocation(), processRaiseEvacFile(), readKillFile(), RODataMsg, ROMsgMsg, envelope::setCount(), envelope::setMsgtype(), envelope::setRoIdx(), envelope::setSrcPe(), PUP::sizer::size(), size, TopoManager_init(), traceCharmInit(), TypeChare, TypeGroup, and UsrToEnv().

Referenced by CharmLibInit(), fmain_(), main(), and TCHARM_Init().

void fmain_ ( int argc,
char  _argv[][80],
int  length[] 
)

Definition at line 1419 of file init.C.

References _initCharm(), and ConverseInit().

void registerExitFn ( CkExitFn  fn  ) 

CksvExtern ( unsigned  int,
_numInitNodeMsgs   
)

CksvExtern ( CmiNodeLock  ,
_nodeLock   
)

CksvExtern ( GroupTable ,
_nodeGroupTable   
)

CksvExtern ( GroupIDTable  ,
_nodeGroupIDTable   
)

CksvExtern ( CmiImmediateLockType  ,
_nodeGroupTableImmLock   
)

CksvExtern ( unsigned  int,
_numNodeGroups   
)

CkpvExtern ( int  ,
_charmEpoch   
)

CkpvExtern ( CkGroupID  ,
_currentGroup   
)

CkpvExtern ( void *  ,
_currentNodeGroupObj   
)

CkpvExtern ( CkGroupID  ,
_currentGroupRednMgr   
)

CkpvExtern ( GroupTable ,
_groupTable   
)

CkpvExtern ( GroupIDTable ,
_groupIDTable   
)

CkpvExtern ( CmiImmediateLockType  ,
_groupTableImmLock   
)

CkpvExtern ( unsigned  int,
_numGroups   
)

CkpvExtern ( char **  ,
Ck_argv   
)

static IrrGroup* _localBranch ( CkGroupID  gID  )  [inline, static]

void CkRegisterMainModule ( void   ) 

This routine registers the user's main module.

It is normally generated by the translator, but for FEM and AMPI may actually be the "fallback" version in compat_regmm.c.

Definition at line 2 of file compat_regmm.c.

Referenced by _initCharm().

void InitCallTable::enumerateInitCalls (  )  [inherited]


Variable Documentation

TopoManager* tmgr = NULL

Turn on manually if you want to calculate hops from within Charm++ for some application.

Definition at line 79 of file init.C.

Referenced by OneTimeDimensionOrderedMulticastStrategy::determineNextHopPEs(), LrtsInitCpuTopo(), ReadFileMap::registerArray(), ScotchTopoLB::work(), and LogPool::writeTopo().

double hops = 0

Definition at line 80 of file init.C.

Referenced by topo::pickClosest().

UChar _defaultQueueing = CK_QUEUEING_FIFO

Definition at line 93 of file init.C.

Referenced by _parseCommandLineOpts(), and CkAllocMsg().

Definition at line 95 of file init.C.

Referenced by _parseCommandLineOpts(), and _printStats().

Definition at line 96 of file init.C.

Referenced by _parseCommandLineOpts(), and _printStats().

This value has the number of total initialization message a processor awaits.

It is received on nodes other than zero together with the ROData message. Even though it is shared by all processors it is ok: it doesn't matter when and by who it is set, provided that it becomes equal to the number of awaited messages (which is always at least one ---the readonly data message).

Definition at line 105 of file init.C.

Referenced by _initHandler(), _roRestartHandler(), and _triggerHandler().

This number is used only by processor zero to count how many messages it will send out for the initialization process.

After the readonly data message is sent (containing this counter), its value becomes irrelevant.

Definition at line 111 of file init.C.

Referenced by _createGroup(), _createNodeGroup(), _initCharm(), and bdcastRO().

Definition at line 120 of file init.C.

Definition at line 121 of file init.C.

Referenced by bdcastRO().

Definition at line 122 of file init.C.

Referenced by _createGroup(), and _createNodeGroup().

Definition at line 123 of file init.C.

Referenced by CkStartQD(), and QdState::propagate().

Definition at line 124 of file init.C.

Definition at line 125 of file init.C.

Definition at line 126 of file init.C.

Definition at line 131 of file init.C.

Definition at line 4 of file mpi-interoperate.C.

Definition at line 173 of file init.C.

Stats** _allStats = 0 [static]

Definition at line 176 of file init.C.

int _numStatsRecd = 0 [static]

Definition at line 178 of file init.C.

int _exitStarted = 0 [static]

Definition at line 179 of file init.C.

Definition at line 181 of file init.C.

CkFtFn faultFunc = NULL [static]

Definition at line 192 of file init.C.

Referenced by _initCharm(), and _parseCommandLineOpts().

char* _restartDir [static]

Definition at line 193 of file init.C.

Referenced by _initCharm(), and _parseCommandLineOpts().

Definition at line 196 of file init.C.

Referenced by CreateLBFunc_Def().

int chkptPeriod = 1000

Definition at line 197 of file init.C.

bool fastRecovery = false

Definition at line 198 of file init.C.

Referenced by _parseCommandLineOpts(), _sendDetsReplyHandler(), and _updateHomeAckHandler().

Definition at line 199 of file init.C.

Definition at line 95 of file ckmessagelogging.C.

Definition at line 78 of file ckcausalmlog.C.

char* killFile

Todo:
the following declarations should be moved into a separate file for all

Definition at line 76 of file ckcausalmlog.C.

Referenced by _parseCommandLineOpts(), CkMemCheckPT::isMaster(), and readKillFile().

Definition at line 211 of file init.C.

Definition at line 212 of file init.C.

Referenced by _libExitHandler().

Definition at line 213 of file init.C.

Referenced by _libExitHandler().

int _raiseEvac = 0 [static]

Definition at line 221 of file init.C.

char* _raiseEvacFile [static]

Definition at line 222 of file init.C.

Referenced by _initCharm(), and _parseCommandLineOpts().

Definition at line 59 of file cklocation.C.

Referenced by _parseCommandLineOpts(), and DefaultArrayMap::procNum().

Definition at line 1335 of file ck.C.

Definition at line 833 of file init.C.

Referenced by _exitHandler().

Definition at line 8 of file qd.C.

unsigned int _printCS

Definition at line 95 of file init.C.

Referenced by _parseCommandLineOpts(), and _printStats().

unsigned int _printSS

Definition at line 96 of file init.C.

Referenced by _parseCommandLineOpts(), and _printStats().

Definition at line 119 of file init.C.

Definition at line 121 of file init.C.

Referenced by bdcastRO().

Definition at line 122 of file init.C.

Referenced by _createGroup(), and _createNodeGroup().

Definition at line 123 of file init.C.

Referenced by CkStartQD(), and QdState::propagate().

unsigned int _numInitMsgs

This number is used only by processor zero to count how many messages it will send out for the initialization process.

After the readonly data message is sent (containing this counter), its value becomes irrelevant.

Definition at line 111 of file init.C.

Referenced by _createGroup(), _createNodeGroup(), _initCharm(), and bdcastRO().

Definition at line 833 of file init.C.

Referenced by _exitHandler().


Generated on Fri May 25 08:00:58 2012 for Charm++ by  doxygen 1.5.5