
Go to the source code of this file.
Data Structures | |
| struct | Determinant |
| Struct to store the determinant of a particular message. More... | |
| struct | RemoveDeterminantsHeader |
| Struct for the header of the removeDeterminants handler. More... | |
| struct | StoreDeterminantsHeader |
| Struct for the header of the storeDeterminants handler. More... | |
| class | Ticket |
| Structure for a ticket assigned to a particular message. More... | |
| class | SNToTicket |
| Class that maps SN (sequence numbers) to TN (ticket numbers) for a particular object. More... | |
| class | ChareMlogData |
| This file includes the definition of the class for storing the meta data associdated with the message logging protocol. More... | |
| class | MlogEntry |
| Entry in a message log. More... | |
| class | LocationID |
| Class that represents the location of an array element. More... | |
| class | StoredCheckpoint |
| class | RestoredLocalMap |
| Class for storing metadata of local messages. More... | |
| struct | TicketRequest |
| struct | TicketReply |
| struct | BufferedLocalLogHeader |
| struct | CheckPointDataMsg |
| struct | TProcessedLog |
| struct | RestartRequest |
| Struct to request a particular action during restart. More... | |
| struct | RestartProcessorData |
| struct | ResendRequest |
| struct | ReceivedTNData |
| struct | ReceivedDetData |
| struct | ResendData |
| struct | MigrationRecord |
| struct | MigrationNotice |
| struct | MigrationNoticeAck |
| struct | RetainedMigratedObject |
| struct | VerifyAckMsg |
| struct | CheckpointBarrierMsg |
| struct | CurrentLocationMsg |
| struct | LBStepMsg |
| struct | DummyMigrationMsg |
Typedefs | |
| typedef CkHashtableT < CkHashtableAdaptorT< CkObjID > , CkVec< Determinant > * > | CkDeterminantHashtableT |
| Typedef for the hashtable type that maps object IDs to determinants. | |
| typedef BufferedLocalLogHeader | BufferedTicketRequestHeader |
| typedef CheckPointDataMsg | CheckPointAck |
| typedef RestartRequest | CkPingMsg |
| typedef RestartRequest | CheckpointRequest |
| typedef ResendRequest | RemoveLogRequest |
| typedef void(* | MlogFn )(void *, ChareMlogData *) |
Functions | |
| CpvExtern (Chare *, _currentObj) | |
| PUPbytes (Ticket) class MlogEntry | |
| CpvExtern (CkQ< TicketRequest * > *, _delayedTicketRequests) | |
| CpvExtern (CkQ< MlogEntry * > *, _delayedLocalTicketRequests) | |
| CpvExtern (char **, _bufferedTicketRequests) | |
| void | _messageLoggingInit () |
| Initialize message logging data structures and register handlers. | |
| void | sendGroupMsg (envelope *env, int destPE, int _infoIdx) |
| Sends a group message that might be a broadcast. | |
| void | sendArrayMsg (envelope *env, int destPE, int _infoIdx) |
| Sends a message to an array element. | |
| void | sendChareMsg (envelope *env, int destPE, int _infoIdx, const CkChareID *pCid) |
| Sends a message to a singleton chare. | |
| void | sendNodeGroupMsg (envelope *env, int destNode, int _infoIdx) |
| Sends a nodegroup message that might be a broadcast. | |
| void | sendCommonMsg (CkObjID &recver, envelope *env, int destPE, int _infoIdx) |
| A method to generate the actual ticket requests for groups, nodegroups or arrays. | |
| void | sendMsg (CkObjID &sender, CkObjID &recver, int destPE, MlogEntry *entry, MCount SN, MCount TN, int resend) |
| Method that does the actual send by creating a ticket request filling it up and sending it. | |
| void | sendLocalMsg (MlogEntry *entry) |
| Function to send a local message. | |
| void | _ticketRequestHandler (TicketRequest *) |
| If there are any delayed requests, process them first before processing this request. | |
| void | _ticketHandler (TicketReply *) |
| This function handles the ticket received after a request. | |
| void | _pingHandler (CkPingMsg *msg) |
| void | _bufferedLocalMessageCopyHandler (BufferedLocalLogHeader *recvdHeader, int freeHeader=1) |
| void | _bufferedLocalMessageAckHandler (BufferedLocalLogHeader *recvdHeader) |
| void | _bufferedTicketRequestHandler (BufferedTicketRequestHeader *recvdHeader) |
| Handler used for dealing with a bunch of ticket requests from one processor. | |
| void | _bufferedTicketHandler (BufferedTicketRequestHeader *recvdHeader) |
| Message to handle the bunch of tickets that we get from one processor. | |
| void | _storeDeterminantsHandler (char *buffer) |
| Stores the determinants coming from other processor. | |
| void | _removeDeterminantsHandler (char *buffer) |
| Removes the determinants after a particular index in the _localDets array. | |
| void | _skipCldEnqueue (int pe, envelope *env, int infoFn) |
| void | _noCldNodeEnqueue (int node, envelope *env) |
| void | generalCldEnqueue (int destPE, envelope *env, int _infoIdx) |
| void | retryTicketRequest (void *_ticketRequest, double curWallTime) |
| int | preProcessReceivedMessage (envelope *env, Chare **objPointer, MlogEntry **localLogEntry) |
| void | postProcessReceivedMessage (Chare *obj, CkObjID &sender, MCount SN, MlogEntry *entry) |
| Updates a few variables once a message has been processed. | |
| CpvExtern (StoredCheckpoint *, _storedCheckpointData) | |
| void | checkpointAlarm (void *_dummy, double curWallTime) |
| void | startMlogCheckpoint (void *_dummy, double curWallTime) |
| Starts the checkpoint phase after migration. | |
| void | pupArrayElementsSkip (PUP::er &p, CmiBool create, MigrationRecord *listToSkip, int listSize=0) |
| Pups all the array elements in this processor. | |
| void | _checkpointRequestHandler (CheckpointRequest *request) |
| void | _storeCheckpointHandler (char *msg) |
| void | _checkpointAckHandler (CheckPointAck *ackMsg) |
| void | _removeProcessedLogHandler (char *requestMsg) |
| Removes messages in the log according to the received ticket numbers. | |
| void | garbageCollectMlog () |
| Garbage collects the message log and other data structures. | |
| void | CkMlogRestart (const char *dummy, CkArgMsg *dummyMsg) |
| Function for restarting the crashed processor. | |
| void | CkMlogRestartDouble (void *, double) |
| void | processReceivedTN (Chare *obj, int vecsize, MCount *listTNs) |
| Processes the received list of tickets from a particular PE. | |
| void | processReceivedDet (Chare *obj, int vecsize, Determinant *listDets) |
| Processes the received list of determinants from a particular PE. | |
| void | initializeRestart (void *data, ChareMlogData *mlogData) |
| Initializes variables and flags for restarting procedure. | |
| void | distributeRestartedObjects () |
| Distributes objects to accelerate recovery after a failure. | |
| void | sendDummyMigration (int restartPE, CkGroupID lbID, CkGroupID locMgrID, CkArrayIndexMax &idx, int locationPE) |
| this method is used to send messages to a restarted processor to tell it that a particular expected object is not going to get to it | |
| void | CkMlogRestartLocal () |
| void | _getCheckpointHandler (RestartRequest *restartMsg) |
| Gets the stored checkpoint for its buddy processor. | |
| void | _recvCheckpointHandler (char *_restartData) |
| Receives the checkpoint data from its buddy, restores the state of all the objects and asks everyone else to update its home. | |
| void | _resendMessagesHandler (char *msg) |
| Resends messages since last checkpoint to the list of objects included in the request. | |
| void | _sendDetsHandler (char *msg) |
| Send all remote determinants to a particular failed PE. | |
| void | _sendDetsReplyHandler (char *msg) |
| Receives determinants stored on remote nodes. | |
| void | _receivedTNDataHandler (ReceivedTNData *msg) |
| Receives a list of TNs coming from the home PE of a migrated object (parallel restart). | |
| void | _receivedDetDataHandler (ReceivedDetData *msg) |
| Receives a list of determinants coming from the home PE of a migrated object (parallel restart). | |
| void | _distributedLocationHandler (char *receivedMsg) |
| Handler to update information about an object just received. | |
| void | _updateHomeRequestHandler (RestartRequest *updateRequest) |
| Updates the homePe for all chares in this processor. | |
| void | _updateHomeAckHandler (RestartRequest *updateHomeAck) |
| Receives the updateHome ACKs from all other processors. | |
| void | _verifyAckRequestHandler (VerifyAckMsg *verifyRequest) |
| void | _verifyAckHandler (VerifyAckMsg *verifyReply) |
| void | _dummyMigrationHandler (DummyMigrationMsg *msg) |
| this handler is used to process a dummy migration msg. | |
| void | _restartHandler (RestartRequest *restartMsg) |
| Function to restart this processor. | |
| void | _getRestartCheckpointHandler (RestartRequest *restartMsg) |
| Gets the stored checkpoint but calls another function in the sender. | |
| void | _recvRestartCheckpointHandler (char *_restartData) |
| Receives the checkpoint coming from its buddy. | |
| void | startLoadBalancingMlog (void(*fnPtr)(void *), void *_centralLb) |
| Load Balancing. | |
| void | finishedCheckpointLoadBalancing () |
| void | sendMlogLocation (int targetPE, envelope *env) |
| void | resumeFromSyncRestart (void *data, ChareMlogData *mlogData) |
| void | _receiveMlogLocationHandler (void *buf) |
| void | _receiveMigrationNoticeHandler (MigrationNotice *msg) |
| void | _receiveMigrationNoticeAckHandler (MigrationNoticeAck *msg) |
| void | _getGlobalStepHandler (LBStepMsg *msg) |
| void | _recvGlobalStepHandler (LBStepMsg *msg) |
| Receives the global step handler from PE 0. | |
| void | _checkpointBarrierHandler (CheckpointBarrierMsg *msg) |
| Processor 0 receives a contribution from every other processor after checkpoint. | |
| void | _checkpointBarrierAckHandler (CheckpointBarrierMsg *msg) |
| int | getCheckPointPE () |
| Getting the pe number of the current processor's buddy. | |
| int | isSameDet (Determinant *first, Determinant *second) |
| void | forAllCharesDo (MlogFn fnPointer, void *data) |
| Map function pointed by fnPointer over all the chares living in this processor. | |
| envelope * | copyEnvelope (envelope *env) |
| void | _initDone (void) |
| This function (not a handler) is called once and only once per processor. | |
| void | _resetNodeBocInitVec (void) |
| void | informLocationHome (CkGroupID mgrID, CkArrayIndexMax idx, int homePE, int currentPE) |
| method that informs an array elements home processor of its current location It is a converse method to bypass the charm++ message logging framework | |
| void | _receiveLocationHandler (CurrentLocationMsg *data) |
| void | CmiDeliverRemoteMsgHandlerRange (int lowerHandler, int higherHandler) |
Variables | |
| char | objString [100] |
| int | _maxBufferedTicketRequests |
| int | _checkpointRequestHandlerIdx |
| int | _storeCheckpointHandlerIdx |
| int | _checkpointAckHandlerIdx |
| int | _removeProcessedLogHandlerIdx |
| int | _getCheckpointHandlerIdx |
| int | _recvCheckpointHandlerIdx |
| int | _resendMessagesHandlerIdx |
| int | _sendDetsHandlerIdx |
| int | _sendDetsReplyHandlerIdx |
| int | _receivedTNDataHandlerIdx |
| int | _receivedDetDataHandlerIdx |
| int | _distributedLocationHandlerIdx |
| int | _updateHomeRequestHandlerIdx |
| int | _updateHomeAckHandlerIdx |
| int | _verifyAckRequestHandlerIdx |
| int | _verifyAckHandlerIdx |
| int | _dummyMigrationHandlerIdx |
| int | onGoingLoadBalancing |
| For testing on clusters we might carry out restarts on a porcessor without actually starting it 1 -> false restart 0 -> restart after an actual crash. | |
| void * | centralLb |
| void(* | resumeLbFnPtr )(void *) |
| int | _receiveMlogLocationHandlerIdx |
| int | _receiveMigrationNoticeHandlerIdx |
| int | _receiveMigrationNoticeAckHandlerIdx |
| int | _getGlobalStepHandlerIdx |
| int | _recvGlobalStepHandlerIdx |
| int | _checkpointBarrierHandlerIdx |
| int | _checkpointBarrierAckHandlerIdx |
| CkVec< MigrationRecord > | migratedNoticeList |
| CkVec< RetainedMigratedObject * > | retainedObjectList |
| int | _receiveLocationHandlerIdx |
Typedef for the hashtable type that maps object IDs to determinants.
Definition at line 53 of file ckcausalmlog.h.
Definition at line 360 of file ckcausalmlog.h.
| typedef CheckPointDataMsg CheckPointAck |
Definition at line 374 of file ckcausalmlog.h.
| typedef RestartRequest CkPingMsg |
Definition at line 390 of file ckcausalmlog.h.
| typedef RestartRequest CheckpointRequest |
Definition at line 391 of file ckcausalmlog.h.
| typedef ResendRequest RemoveLogRequest |
Definition at line 411 of file ckcausalmlog.h.
| typedef void(* MlogFn)(void *, ChareMlogData *) |
Definition at line 507 of file ckcausalmlog.h.
| CpvExtern | ( | Chare * | , | |
| _currentObj | ||||
| ) |
| PUPbytes | ( | Ticket | ) |
| CpvExtern | ( | CkQ< TicketRequest * > * | , | |
| _delayedTicketRequests | ||||
| ) |
| CpvExtern | ( | char ** | , | |
| _bufferedTicketRequests | ||||
| ) |
| void _messageLoggingInit | ( | ) |
Initialize message logging data structures and register handlers.
Definition at line 237 of file ckcausalmlog.C.
Sends a group message that might be a broadcast.
Definition at line 469 of file ckcausalmlog.C.
References CkCopyMsg(), Converse::CkMyPe(), CmiMyPe(), CkObjID::data, EnvToUsr(), envelope::getGroupNum(), _ObjectID::group, _ObjectID::id, _ObjectID::onPE, printf(), sendCommonMsg(), envelope::sender, sendGroupMsg(), envelope::SN, envelope::TN, CkObjID::type, TypeGroup, TypeInvalid, and UsrToEnv().
Referenced by _sendMsgBranch(), and sendGroupMsg().
Sends a message to an array element.
Definition at line 534 of file ckcausalmlog.C.
References _ObjectID::array, CkArrayIndexBase::asChild(), Converse::CkMyPe(), CkObjID::data, envelope::getsetArrayIndex(), envelope::getsetArrayMgr(), _ObjectID::s_array::id, _ObjectID::s_array::idx, printf(), sendCommonMsg(), envelope::SN, envelope::TN, CkObjID::toString(), CkObjID::type, and TypeArray.
Referenced by CkArrayManagerDeliver().
Sends a message to a singleton chare.
Definition at line 556 of file ckcausalmlog.C.
References _ObjectID::chare, Converse::CkMyPe(), CkObjID::data, _ObjectID::id, printf(), sendCommonMsg(), envelope::SN, envelope::TN, CkObjID::toString(), CkObjID::type, TypeArray, and TypeChare.
Referenced by CkSendMsg().
Sends a nodegroup message that might be a broadcast.
Definition at line 502 of file ckcausalmlog.C.
References CkCopyMsg(), Converse::CkMyPe(), CkObjID::data, EnvToUsr(), envelope::getGroupNum(), _ObjectID::group, _ObjectID::id, _ObjectID::onPE, printf(), sendCommonMsg(), envelope::sender, sendNodeGroupMsg(), envelope::SN, envelope::TN, CkObjID::type, TypeInvalid, TypeNodeGroup, and UsrToEnv().
Referenced by _sendMsgNodeBranch(), and sendNodeGroupMsg().
A method to generate the actual ticket requests for groups, nodegroups or arrays.
Definition at line 577 of file ckcausalmlog.C.
References _startTime, Converse::CkMyPe(), CmiMemoryCheck(), copyEnvelope(), generalCldEnqueue(), SNToTicket::get(), CkHashtableT< KEY, OBJ >::get(), CkObjID::getObject(), envelope::incarnation, isLocal(), isTeamLocal(), Chare::mlogData, ChareMlogData::nextSN(), printf(), envelope::recver, envelope::sender, sendLocalMsg(), sendMsg(), envelope::SN, ChareMlogData::teamTable, Ticket::TN, CkObjID::toString(), CkObjID::type, and TypeInvalid.
Referenced by sendArrayMsg(), sendChareMsg(), sendGroupMsg(), and sendNodeGroupMsg().
| void sendMsg | ( | CkObjID & | sender, | |
| CkObjID & | recver, | |||
| int | destPE, | |||
| MlogEntry * | entry, | |||
| MCount | SN, | |||
| MCount | TN, | |||
| int | resend | |||
| ) |
Method that does the actual send by creating a ticket request filling it up and sending it.
Definition at line 684 of file ckcausalmlog.C.
References MlogEntry::_infoIdx, ChareMlogData::addLogEntry(), Converse::CkMyPe(), CmiMemoryCheck(), CmiMyPe(), CmiSyncVectorSend(), MlogEntry::destPE, MlogEntry::env, envelope::freeMsg, generalCldEnqueue(), CkObjID::getObject(), envelope::getTotalsize(), StoreDeterminantsHeader::index, MlogEntry::indexBufDets, isTeamLocal(), Chare::mlogData, MLOGFT_totalLogSize, MLOGFT_totalMessages, StoreDeterminantsHeader::number, MlogEntry::numBufDets, StoreDeterminantsHeader::PE, StoreDeterminantsHeader::phase, printf(), envelope::recver, envelope::sender, sizes, envelope::SN, envelope::TN, CkObjID::toString(), and totalMsgsSize.
Referenced by sendCommonMsg().
| void sendLocalMsg | ( | MlogEntry * | entry | ) |
Function to send a local message.
It first gets a ticket and then enqueues the message. If we are recovering, then the message is enqueued in a delay queue.
Definition at line 765 of file ckcausalmlog.C.
References MlogEntry::_infoIdx, _skipCldEnqueue(), _startTime, CmiMemoryCheck(), CmiMyPe(), MlogEntry::env, CkObjID::getObject(), printf(), envelope::recver, envelope::sender, envelope::SN, and CkObjID::toString().
Referenced by sendCommonMsg().
| void _ticketRequestHandler | ( | TicketRequest * | ) | [inline] |
If there are any delayed requests, process them first before processing this request.
Definition at line 928 of file ckcausalmlog.C.
| void _ticketHandler | ( | TicketReply * | ) | [inline] |
This function handles the ticket received after a request.
Definition at line 965 of file ckmessagelogging.C.
Referenced by _bufferedTicketHandler(), and _messageLoggingInit().
| void _pingHandler | ( | CkPingMsg * | msg | ) |
Definition at line 1164 of file ckcausalmlog.C.
| void _bufferedLocalMessageCopyHandler | ( | BufferedLocalLogHeader * | recvdHeader, | |
| int | freeHeader = 1 | |||
| ) |
Definition at line 1110 of file ckmessagelogging.C.
Referenced by _bufferedLocalMessageAckHandler(), and _messageLoggingInit().
| void _bufferedLocalMessageAckHandler | ( | BufferedLocalLogHeader * | recvdHeader | ) |
| void _bufferedTicketRequestHandler | ( | BufferedTicketRequestHeader * | recvdHeader | ) |
Handler used for dealing with a bunch of ticket requests from one processor.
The replies are also bunched together Does not use _ticketRequestHandler
Definition at line 792 of file ckmessagelogging.C.
Referenced by _messageLoggingInit().
| void _bufferedTicketHandler | ( | BufferedTicketRequestHeader * | recvdHeader | ) |
Message to handle the bunch of tickets that we get from one processor.
We send the tickets to be handled one at a time
Definition at line 1066 of file ckmessagelogging.C.
Referenced by _messageLoggingInit().
| void _storeDeterminantsHandler | ( | char * | buffer | ) |
Stores the determinants coming from other processor.
Definition at line 861 of file ckcausalmlog.C.
References Converse::CkMyPe(), CmiFree(), CmiMemoryCheck(), Converse::CmiSyncSend(), RemoveDeterminantsHeader::index, StoreDeterminantsHeader::index, isSameDet(), n, StoreDeterminantsHeader::number, StoreDeterminantsHeader::PE, RemoveDeterminantsHeader::phase, StoreDeterminantsHeader::phase, CkVec< T >::push_back(), Determinant::receiver, Determinant::sender, CkVec< T >::size(), Determinant::SN, and Determinant::TN.
Referenced by _messageLoggingInit().
| void _removeDeterminantsHandler | ( | char * | buffer | ) |
Removes the determinants after a particular index in the _localDets array.
Definition at line 834 of file ckcausalmlog.C.
References CmiFree(), RemoveDeterminantsHeader::index, and RemoveDeterminantsHeader::phase.
Referenced by _messageLoggingInit().
Definition at line 1143 of file ckcausalmlog.C.
| void retryTicketRequest | ( | void * | _ticketRequest, | |
| double | curWallTime | |||
| ) |
Definition at line 1396 of file ckmessagelogging.C.
Referenced by _bufferedTicketRequestHandler(), _messageLoggingInit(), _ticketRequestHandler(), and retryTicketRequestTimer().
Definition at line 1012 of file ckcausalmlog.C.
Updates a few variables once a message has been processed.
Definition at line 1123 of file ckcausalmlog.C.
| CpvExtern | ( | StoredCheckpoint * | , | |
| _storedCheckpointData | ||||
| ) |
| void checkpointAlarm | ( | void * | _dummy, | |
| double | curWallTime | |||
| ) |
Definition at line 1179 of file ckcausalmlog.C.
| void startMlogCheckpoint | ( | void * | _dummy, | |
| double | curWallTime | |||
| ) |
| void pupArrayElementsSkip | ( | PUP::er & | p, | |
| CmiBool | create, | |||
| MigrationRecord * | listToSkip, | |||
| int | listSize = 0 | |||
| ) |
| void _checkpointRequestHandler | ( | CheckpointRequest * | request | ) |
Definition at line 1196 of file ckcausalmlog.C.
| void _storeCheckpointHandler | ( | char * | msg | ) |
Definition at line 1386 of file ckcausalmlog.C.
| void _checkpointAckHandler | ( | CheckPointAck * | ackMsg | ) |
Definition at line 1476 of file ckcausalmlog.C.
| void _removeProcessedLogHandler | ( | char * | requestMsg | ) |
Removes messages in the log according to the received ticket numbers.
Definition at line 1588 of file ckcausalmlog.C.
| void garbageCollectMlog | ( | ) |
Garbage collects the message log and other data structures.
In case of synchronized checkpoint, we use an optimization to avoid causal message logging protocol to communicate all determinants to the rest of the processors.
Definition at line 3308 of file ckcausalmlog.C.
References Converse::CkMyPe(), forAllCharesDo(), garbageCollectMlogForChare(), CkHashtableIterator::hasNext(), CkHashtableIterator::next(), and CkVec< T >::removeAll().
Referenced by initMlogLBStep().
| void CkMlogRestart | ( | const char * | dummy, | |
| CkArgMsg * | dummyMsg | |||
| ) |
Function for restarting the crashed processor.
It sets the restart flag and contacts the buddy processor to get the latest checkpoint.
Definition at line 1652 of file ckcausalmlog.C.
| void CkMlogRestartDouble | ( | void * | , | |
| double | ||||
| ) |
Definition at line 1866 of file ckcausalmlog.C.
Processes the received list of tickets from a particular PE.
Definition at line 2696 of file ckcausalmlog.C.
| void processReceivedDet | ( | Chare * | obj, | |
| int | vecsize, | |||
| Determinant * | listDets | |||
| ) |
Processes the received list of determinants from a particular PE.
Definition at line 2679 of file ckcausalmlog.C.
References Converse::CkMyPe(), CmiMemoryCheck(), Chare::mlogData, printDet(), Determinant::sender, Determinant::SN, Determinant::TN, and ChareMlogData::verifyTicket().
Referenced by _receivedDetDataHandler(), and _sendDetsReplyHandler().
| void initializeRestart | ( | void * | data, | |
| ChareMlogData * | mlogData | |||
| ) |
Initializes variables and flags for restarting procedure.
Definition at line 2168 of file ckcausalmlog.C.
| void distributeRestartedObjects | ( | ) |
Distributes objects to accelerate recovery after a failure.
Definition at line 2934 of file ckcausalmlog.C.
| void sendDummyMigration | ( | int | restartPE, | |
| CkGroupID | lbID, | |||
| CkGroupID | locMgrID, | |||
| CkArrayIndexMax & | idx, | |||
| int | locationPE | |||
| ) |
this method is used to send messages to a restarted processor to tell it that a particular expected object is not going to get to it
Definition at line 2980 of file ckcausalmlog.C.
| void CkMlogRestartLocal | ( | ) |
Definition at line 1871 of file ckcausalmlog.C.
| void _getCheckpointHandler | ( | RestartRequest * | restartMsg | ) |
| void _recvCheckpointHandler | ( | char * | _restartData | ) |
Receives the checkpoint data from its buddy, restores the state of all the objects and asks everyone else to update its home.
Definition at line 2036 of file ckcausalmlog.C.
| void _resendMessagesHandler | ( | char * | msg | ) |
Resends messages since last checkpoint to the list of objects included in the request.
It also sends stored remote determinants to the particular failed PE.
Definition at line 2472 of file ckcausalmlog.C.
| void _sendDetsHandler | ( | char * | msg | ) |
Send all remote determinants to a particular failed PE.
It only sends determinants to those objects on the list.
Definition at line 2369 of file ckcausalmlog.C.
References Converse::CkMyPe(), CmiAlloc(), CmiFree(), CmiMemoryCheck(), Converse::CmiSyncSendAndFree(), CmiWallTimer(), CkVec< T >::getVec(), ResendData::listObjects, ResendRequest::numberObjects, ResendData::numberObjects, ResendRequest::PE, ResendData::PE, printDet(), CkVec< T >::push_back(), TProcessedLog::recver, CkVec< T >::size(), ResendData::ticketVecs, and TProcessedLog::tProcessed.
Referenced by _messageLoggingInit().
| void _sendDetsReplyHandler | ( | char * | msg | ) |
Receives determinants stored on remote nodes.
Message format: |Header|ObjID list|TN list|Determinant list| TN list = |number of TNs|list of TNs|...|
Definition at line 2528 of file ckcausalmlog.C.
References _resendMessagesHandler(), Converse::CkMyPe(), Converse::CkNumPes(), CmiAlloc(), CmiFree(), CmiMyPe(), Converse::CmiSyncSend(), Converse::CmiSyncSendAndFree(), CmiWallTimer(), createObjIDList(), distributeRestartedObjects(), fastRecovery, forAllCharesDo(), ResendRequest::numberObjects, ReceivedDetData::numDets, ReceivedTNData::numTNs, ResendRequest::PE, printf(), processReceivedDet(), processReceivedTN(), CentralLB::ReceiveDummyMigration(), ReceivedDetData::recver, and ReceivedTNData::recver.
Referenced by _messageLoggingInit(), and _recvGlobalStepHandler().
| void _receivedTNDataHandler | ( | ReceivedTNData * | msg | ) |
Receives a list of TNs coming from the home PE of a migrated object (parallel restart).
Definition at line 2661 of file ckcausalmlog.C.
| void _receivedDetDataHandler | ( | ReceivedDetData * | msg | ) |
Receives a list of determinants coming from the home PE of a migrated object (parallel restart).
Definition at line 2643 of file ckcausalmlog.C.
References CmiFree(), CmiMyPe(), Converse::CmiSyncSendAndFree(), CkObjID::getObject(), CkObjID::guessPE(), Chare::mlogData, ReceivedDetData::numDets, ChareMlogData::objID, printf(), processReceivedDet(), ReceivedDetData::recver, and CkObjID::toString().
Referenced by _messageLoggingInit().
| void _distributedLocationHandler | ( | char * | receivedMsg | ) |
Handler to update information about an object just received.
Definition at line 2944 of file ckcausalmlog.C.
| void _updateHomeRequestHandler | ( | RestartRequest * | updateRequest | ) |
Updates the homePe for all chares in this processor.
Definition at line 2201 of file ckcausalmlog.C.
| void _updateHomeAckHandler | ( | RestartRequest * | updateHomeAck | ) |
Receives the updateHome ACKs from all other processors.
Once everybody has replied, it sends a request to resend the logged messages.
Definition at line 2114 of file ckcausalmlog.C.
| void _verifyAckRequestHandler | ( | VerifyAckMsg * | verifyRequest | ) |
Definition at line 1915 of file ckcausalmlog.C.
| void _verifyAckHandler | ( | VerifyAckMsg * | verifyReply | ) |
Definition at line 1943 of file ckcausalmlog.C.
| void _dummyMigrationHandler | ( | DummyMigrationMsg * | msg | ) |
this handler is used to process a dummy migration msg.
it looks up the load balancer and calls migrated for it
Definition at line 3013 of file ckcausalmlog.C.
| void _restartHandler | ( | RestartRequest * | restartMsg | ) |
Function to restart this processor.
The handler is invoked by a member of its same team in message logging.
Definition at line 1683 of file ckcausalmlog.C.
| void _getRestartCheckpointHandler | ( | RestartRequest * | restartMsg | ) |
Gets the stored checkpoint but calls another function in the sender.
Definition at line 1715 of file ckcausalmlog.C.
| void _recvRestartCheckpointHandler | ( | char * | _restartData | ) |
Receives the checkpoint coming from its buddy.
This is the case of restart for one team member that did not crash.
Definition at line 1754 of file ckcausalmlog.C.
| void startLoadBalancingMlog | ( | void(*)(void *) | fnPtr, | |
| void * | _centralLb | |||
| ) |
| void finishedCheckpointLoadBalancing | ( | ) |
Definition at line 3118 of file ckcausalmlog.C.
Definition at line 3130 of file ckcausalmlog.C.
| void resumeFromSyncRestart | ( | void * | data, | |
| ChareMlogData * | mlogData | |||
| ) |
Definition at line 3225 of file ckcausalmlog.C.
| void _receiveMlogLocationHandler | ( | void * | buf | ) |
Definition at line 3211 of file ckcausalmlog.C.
| void _receiveMigrationNoticeHandler | ( | MigrationNotice * | msg | ) |
Definition at line 3181 of file ckcausalmlog.C.
| void _receiveMigrationNoticeAckHandler | ( | MigrationNoticeAck * | msg | ) |
Definition at line 3191 of file ckcausalmlog.C.
| void _getGlobalStepHandler | ( | LBStepMsg * | msg | ) |
Definition at line 3394 of file ckcausalmlog.C.
| void _recvGlobalStepHandler | ( | LBStepMsg * | msg | ) |
| void _checkpointBarrierHandler | ( | CheckpointBarrierMsg * | msg | ) |
Processor 0 receives a contribution from every other processor after checkpoint.
Definition at line 3251 of file ckcausalmlog.C.
| void _checkpointBarrierAckHandler | ( | CheckpointBarrierMsg * | msg | ) |
Definition at line 3270 of file ckcausalmlog.C.
| int getCheckPointPE | ( | ) |
Getting the pe number of the current processor's buddy.
In the team-based approach each processor might checkpoint in the next team, but currently teams are only meant to reduce memory overhead.
Definition at line 3953 of file ckcausalmlog.C.
| int isSameDet | ( | Determinant * | first, | |
| Determinant * | second | |||
| ) | [inline] |
Definition at line 3965 of file ckcausalmlog.C.
References Determinant::receiver, Determinant::sender, Determinant::SN, and Determinant::TN.
Referenced by _storeDeterminantsHandler().
| void forAllCharesDo | ( | MlogFn | fnPointer, | |
| void * | data | |||
| ) |
Map function pointed by fnPointer over all the chares living in this processor.
Definition at line 3064 of file ckcausalmlog.C.
Definition at line 3958 of file ckcausalmlog.C.
| void _resetNodeBocInitVec | ( | void | ) |
| void informLocationHome | ( | CkGroupID | mgrID, | |
| CkArrayIndexMax | idx, | |||
| int | homePE, | |||
| int | currentPE | |||
| ) |
method that informs an array elements home processor of its current location It is a converse method to bypass the charm++ message logging framework
Definition at line 3338 of file ckcausalmlog.C.
| void _receiveLocationHandler | ( | CurrentLocationMsg * | data | ) |
Definition at line 3353 of file ckcausalmlog.C.
Referenced by processRemoteMlogMessages().
| char objString[100] |
Definition at line 159 of file ckcausalmlog.C.
Definition at line 160 of file ckcausalmlog.C.
Definition at line 161 of file ckcausalmlog.C.
Definition at line 162 of file ckcausalmlog.C.
Definition at line 165 of file ckcausalmlog.C.
Definition at line 163 of file ckcausalmlog.C.
Definition at line 164 of file ckcausalmlog.C.
Definition at line 177 of file ckcausalmlog.C.
Definition at line 178 of file ckcausalmlog.C.
Definition at line 179 of file ckcausalmlog.C.
Definition at line 180 of file ckcausalmlog.C.
Definition at line 181 of file ckcausalmlog.C.
Definition at line 182 of file ckcausalmlog.C.
Definition at line 175 of file ckcausalmlog.C.
Definition at line 176 of file ckcausalmlog.C.
Definition at line 167 of file ckcausalmlog.C.
Definition at line 168 of file ckcausalmlog.C.
Definition at line 169 of file ckcausalmlog.C.
For testing on clusters we might carry out restarts on a porcessor without actually starting it 1 -> false restart 0 -> restart after an actual crash.
Definition at line 208 of file ckcausalmlog.C.
| void* centralLb |
Definition at line 209 of file ckcausalmlog.C.
| void(* resumeLbFnPtr)(void *) |
Definition at line 211 of file ckcausalmlog.C.
Definition at line 212 of file ckcausalmlog.C.
Definition at line 213 of file ckcausalmlog.C.
Definition at line 172 of file ckcausalmlog.C.
Definition at line 173 of file ckcausalmlog.C.
Definition at line 214 of file ckcausalmlog.C.
Definition at line 215 of file ckcausalmlog.C.
Definition at line 217 of file ckcausalmlog.C.
Definition at line 218 of file ckcausalmlog.C.
Definition at line 232 of file ckcausalmlog.C.
1.5.5