
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 | |
| TopoManager * | tmgr = 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 |
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:
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...
| void CkRestartMain | ( | const char * | dirname | ) |
| void printTotalHops | ( | ) |
| CksvDeclare | ( | UInt | , | |
| _numInitNodeMsgs | ||||
| ) |
| 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 | ) |
Definition at line 17 of file mpi-interoperate.C.
References _ringexit, _ringtoken, Converse::CkMyPe(), Converse::CkNumPes(), CmiAbort(), CmiFree(), Converse::CmiSyncBroadcastAllAndFree(), Converse::CmiSyncSend(), Converse::CmiSyncSendAndFree(), ExitMsg, envelope::getMsgtype(), envelope::getTotalsize(), ReqStatMsg, envelope::setMsgtype(), envelope::setSrcPe(), and StartExitMsg.
Referenced by _initCharm().
| 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] |
Definition at line 227 of file init.C.
References _defaultQueueing, _isAnytimeMigration, _isNotifyChildInRed, _isStaticInsertion, _maxBufferedMessages, _maxBufferedTicketRequests, _printCS, _printSS, _raiseEvacFile, _restartDir, CkMemRestart(), CkMlogRestart(), Converse::CkMyPe(), Converse::CkNumPes(), CkRestartMain(), CmiAbort(), CmiGetArgFlag(), CmiGetArgFlagDesc(), CmiGetArgIntDesc(), CmiGetArgString(), CmiGetArgStringDesc(), CmiMyPe(), CmiPrintf(), fastRecovery, faultFunc, killFile, printf(), and useNodeBlkMapping.
Referenced by _initCharm().
| 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] |
Definition at line 391 of file init.C.
References _printCS, _printSS, Converse::CkMyPe(), Converse::CkNumPes(), Stats::combine(), Stats::getCharesCreated(), and Stats::getCharesProcessed().
Referenced by _exitHandler().
| static void _sendStats | ( | void | ) | [inline, static] |
Definition at line 438 of file init.C.
References _allocEnv(), Converse::CkMyPe(), Converse::CmiSyncSendAndFree(), envelope::getTotalsize(), envelope::setSrcPe(), StatMsg, and UsrToEnv().
Referenced by _exitHandler().
| 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 | ) |
Definition at line 1337 of file ck.C.
References CmiGridQueueLookupMsg(), CqsEnqueueGeneral(), envelope::getPriobits(), envelope::getPrioPtr(), and envelope::getQueueing().
Referenced by _ckModuleInit(), and _resume_charm_message().
| 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] |
Definition at line 477 of file init.C.
References _CkExitFnVec, _discardHandler(), _messageLoggingExit(), _printStats(), _sendStats(), CharmLibInterOperate, Converse::CkMyPe(), Converse::CkNumPes(), CkNumValidPes(), CmiAbort(), CmiFree(), Converse::CmiSyncBroadcastAllAndFree(), Converse::CmiSyncSend(), Converse::CmiSyncSendAndFree(), ConverseExit(), EnvToUsr(), ExitMsg, envelope::getMsgtype(), envelope::getSrcPe(), envelope::getTotalsize(), ReqStatMsg, envelope::setMsgtype(), envelope::setSrcPe(), StartExitMsg, StatMsg, and traceClose().
Referenced by _initCharm().
| 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] |
Definition at line 616 of file init.C.
References _CldEnqueue(), _processHandler(), envelope::getMsgtype(), envelope::isForAnyPE(), NewChareMsg, and NewVChareMsg.
Referenced by _initDone().
| static int _charmLoadEstimator | ( | void | ) | [static] |
| 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 | ) |
Definition at line 802 of file init.C.
References _allocEnv(), _discardHandler(), Converse::CkMyPe(), Converse::CmiSyncBroadcastAllAndFree(), Converse::CmiSyncSendAndFree(), CsdScheduler(), ExitMsg, envelope::getTotalsize(), ReqStatMsg, and envelope::setSrcPe().
| void CkExit | ( | void | ) |
Definition at line 839 of file init.C.
References _allocEnv(), CharmLibInterOperate, Converse::CkMyPe(), Converse::CmiSyncSendAndFree(), CsdScheduler(), envelope::getTotalsize(), envelope::setSrcPe(), and StartExitMsg.
Referenced by _loadbalancerInit(), _localMessageAckHandler(), patchReader::abort(), SearchConductor::allSearchNodeDone(), TCharm::atExit(), con::CancelEvents(), CharmLibExit(), TraceProjectionsBOC::closeParallelShutdown(), CombineSummary(), CpdQuitDebug(), die(), controlPointManager::doExitNow(), SlabArray::doneFFT(), SlabArray::doneIFFT(), pose::exit(), FORTRAN_AS_C(), SearchConductor::foundSolution(), FTN_NAME(), FEM_Mesh::get2ElementsOnEdge(), idaStarWorker::idaStarWorker(), pvtObjects::Insert(), lbObjects::Insert(), sim::InternalCommitPrintf(), receiver::iwaitAll(), SearchGroup::killSearch(), lbObjects::lbObjects(), LV3D0_quit(), mpi_main::mpi_main(), patchReader::patchReader(), main::performRefinements(), pvtObjects::pvtObjects(), main::readMesh(), Solver::reportSolution(), AmrCoordinator::reportStats(), CkCallback::send(), TraceSummaryBOC::sendSummaryBOC(), CentralLB::simulationRead(), CentralLB::simulationWrite(), TraceSummaryBOC::sumData(), AmrCoordinator::synchronise(), traceControlPointsExitFunction(), TraceProjectionsExitHandler(), traceSimpleExitFunction(), and traceTauExitFunction().
| void EmergencyExit | ( | void | ) |
Definition at line 862 of file init.C.
Referenced by ConverseCommonExit(), machine_exit(), and SendMsgBuf().
| static void _nullFn | ( | void * | , | |
| void * | ||||
| ) | [static] |
| 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 | ( | ) |
Definition at line 154 of file LBDatabase.C.
References _lbtopo, LBDBRegistry::addRuntimeBalancer(), CkLBArgs::alpha(), CkLBArgs::beeta(), CkLBArgs::central_pe(), CkExit(), CkGetArgv(), Converse::CkMyPe(), BGConverse::CkMyRank(), CmiArgGroup(), CmiGetArgDoubleDesc(), CmiGetArgFlagDesc(), CmiGetArgIntDesc(), CmiGetArgStringDesc(), CmiPrintf(), CkLBArgs::debug(), LBSimulation::doSimulation, LBSimulation::dumpFile, LBSimulation::dumpStep, LBSimulation::dumpStepSize, CkLBArgs::ignoreBgLoad(), CkLBArgs::lbperiod(), CkLBArgs::lbversion(), CkLBArgs::loop(), CkLBArgs::migObjOnly(), CkLBArgs::percentMovesAllowed(), CkLBArgs::printSummary(), CkLBArgs::samePeSpeed(), LBSimulation::showDecisionsOnly, LBSimulation::simProcs, LBSimulation::simStep, LBSimulation::simStepSize, CkLBArgs::statsOn(), CkLBArgs::syncResume(), CkLBArgs::teamSize(), CkLBArgs::testPeSpeed(), CkLBArgs::traceComm(), and CkLBArgs::useCpuTime().
Referenced by _initCharm().
| void _initChareTables | ( | ) |
| void init_memcheckpt | ( | char ** | argv | ) |
Referenced by _initCharm(), and CkMemCheckPT::isMaster().
| void initCharmProjections | ( | ) |
| void CmiInitCPUTopology | ( | char ** | argv | ) |
Definition at line 627 of file cputopology.C.
References LrtsInitCpuTopo().
Referenced by _initCharm().
| void CmiInitCPUAffinity | ( | char ** | argv | ) |
Definition at line 750 of file cpuaffinity.c.
References add_exclude(), CmiAbort(), CmiAlloc(), CmiCreateLock(), CmiDeliverSpecificMsg(), CmiGetArgFlagDesc(), CmiGetArgIntDesc(), CmiGetArgStringDesc(), CmiLock(), CmiMyPe(), CmiMyRank(), CmiNodeAllBarrier(), CmiNodeFirst(), CmiNodeOf(), CmiNumCores(), CmiPrintCPUAffinity(), CmiPrintf(), CmiRegisterHandler(), CmiSetCPUAffinity(), Converse::CmiSyncSendAndFree(), CmiUnlock(), CmmNew(), cpuAffinityHandler(), cpuAffinityRecvHandler(), getXTNodeID(), malloc(), msg, n, printf(), search_pemap(), and skt_my_ip().
Referenced by _initCharm().
| void CmiInitMemAffinity | ( | char ** | argv | ) |
Definition at line 241 of file memoryaffinity.c.
References CmiAbort(), CmiGetArgFlagDesc(), CmiGetArgStringDesc(), CmiMyPe(), CmiNodeAllBarrier(), CmiNumNUMANodes(), CmiPrintf(), CmiSetMemAffinity(), free(), getNUMANidByRank(), and malloc().
Referenced by _initCharm().
| void CmiInitPxshm | ( | char ** | argv | ) |
Definition at line 212 of file machine-pxshm.c.
References _Cmi_mynode, calculateNodeSizeAndRank(), calloc(), cleanupOnAllSigs(), CmiAbort(), CmiReadSize(), PxshmContext::commServerTime, initAllSendQs(), PxshmContext::lockRecvCount, malloc(), PxshmContext::nodesize, PxshmContext::prefixStr, printf(), PxshmContext::sendCount, PxshmContext::sendTime, setupSharedBuffers(), PxshmContext::validCheckCount, and PxshmContext::validCheckTime.
Referenced by _initCharm(), ConverseInit(), and KillOnAllSigs().
| 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 | ) |
Definition at line 927 of file init.C.
References _qdCommHandler(), _qdHandler(), CmiGetArgIntDesc(), CmiMyPe(), CmiMyRank(), CmiPrintf(), and CmiRegisterHandler().
Referenced by _initCharm(), and ConverseCommonInit().
| void CpdBgInit | ( | ) |
Definition at line 1083 of file debug-charm.C.
References BgProcessMessageFreezeMode(), CcsReleaseMessages(), CdsFifo_Create(), and req_fw_handler().
Referenced by _initCharm().
| void CpdBreakPointInit | ( | ) |
Definition at line 752 of file debug-charm.C.
References CkHashCompare_int(), CkHashFunction_int(), CkRegisterChare(), CkRegisterChareInCharm(), CkRegisterMsg(), and TypeChare.
Referenced by _initCharm().
| 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 registerExitFn | ( | CkExitFn | fn | ) |
Definition at line 1441 of file init.C.
References CkQ< T >::enq().
Referenced by controlPointInitNode(), initTraceProjectionsBOC(), initTraceSimpleBOC(), initTraceSummaryBOC(), and initTraceTauBOC().
| 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 | ||||
| ) |
Definition at line 149 of file init.h.
Referenced by ComlibManager::bracketedDiscover(), ComlibManager::bracketedStartDiscovery(), CpdPythonGroup::buildIterator(), CkArrayMessageObjectPtr(), CkFindObjectPtr(), CkLocalBranch(), CkSendMsgArray(), CkSendMsgArrayInline(), CkSendMsgBranchInline(), ComlibArrayInfo::deliver(), CharmStrategy::deliverToIndices(), ComlibArrayInfo::getCombinedCountList(), ComlibSectionInfo::getLocalIndices(), ComlibSectionInfo::getNodeLocalIndices(), ComlibSectionInfo::getPeCount(), ComlibSectionInfo::getPeList(), ComlibSectionInfo::getRemotePelist(), ComlibArrayInfo::localMulticast(), ComlibArrayInfo::purge(), and recv_array_msg().
| 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] |
Definition at line 906 of file init.C.
References BGConverse::BgNodeRank(), BGConverse::CkMyRank(), CmiNodeAllBarrier(), InitCallTable::initNodeCalls, and InitCallTable::initProcCalls.
Referenced by _initCharm().
| 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().
| UChar _defaultQueueing = CK_QUEUEING_FIFO |
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().
| UInt _numInitMsgs = 0 |
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 118 of file init.C.
Referenced by _sendMsgBranch(), _sendMsgBranchMulti(), _sendMsgNodeBranch(), _sendMsgNodeBranchMulti(), CkArrayManagerDeliver(), CkArrayManagerInsert(), CkCreateChare(), CkCreateLocalGroup(), CkCreateLocalNodeGroup(), CkSendMsg(), CkSendMsgBranchGroup(), CkStartQD(), and VidBlock::msgDeliver().
Definition at line 119 of file init.C.
Referenced by _CkMigratable_prefetchInit(), _ObjectQHandler(), _prepareMsg(), _prepareMsgBranch(), _prepareOutgoingArrayMsg(), _processNewVChareMsg(), CkCreateChare(), CpdIsBgCharmDebugMessage(), CpdIsCharmDebugMessage(), CpdList_message::pup(), CpdList_localQ::pupSingleMessage(), traceCommonInit(), and Chare::~Chare().
Definition at line 129 of file init.C.
Referenced by NormalLineArray::doFirstFFT(), SlabArray::doneFFT(), SlabArray::doneIFFT(), NormalLineArray::doSecondFFT(), PythonObject::execute(), PythonObject::executeThread(), and isCompressedBufferSane().
Definition at line 130 of file init.C.
Referenced by ARMCI_Error(), taskGraphArray::deleteElement(), idaStarWorker::idaStarWorker(), LineFFTinfo::init(), NormalFFTinfo::init(), MPI_BAND(), MPI_BOR(), MPI_BXOR(), MPI_LAND(), MPI_LOR(), MPI_LXOR(), MPI_MAXLOC(), MPI_MINLOC(), and idaStarGroup::SpawnIteration().
Definition at line 4 of file mpi-interoperate.C.
int _numStatsRecd = 0 [static] |
int _exitStarted = 0 [static] |
InitCallTable _initCallTable [static] |
char* _restartDir [static] |
| int chkptPeriod = 1000 |
| bool fastRecovery = false |
Definition at line 198 of file init.C.
Referenced by _parseCommandLineOpts(), _sendDetsReplyHandler(), and _updateHomeAckHandler().
| int parallelRecovery = 1 |
Definition at line 95 of file ckmessagelogging.C.
Definition at line 78 of file ckcausalmlog.C.
| char* killFile |
Definition at line 76 of file ckcausalmlog.C.
Referenced by _parseCommandLineOpts(), CkMemCheckPT::isMaster(), and readKillFile().
| int _defaultObjectQ = 0 |
| int _ringtoken = 8 |
int _raiseEvac = 0 [static] |
char* _raiseEvacFile [static] |
Definition at line 59 of file cklocation.C.
Referenced by _parseCommandLineOpts(), and DefaultArrayMap::procNum().
Definition at line 118 of file init.C.
Referenced by _sendMsgBranch(), _sendMsgBranchMulti(), _sendMsgNodeBranch(), _sendMsgNodeBranchMulti(), CkArrayManagerDeliver(), CkArrayManagerInsert(), CkCreateChare(), CkCreateLocalGroup(), CkCreateLocalNodeGroup(), CkSendMsg(), CkSendMsgBranchGroup(), CkStartQD(), and VidBlock::msgDeliver().
| 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().
1.5.5