streaming regarding changes
authorXiang Ni <xini@login4.intrepid.alcf.anl.gov>
Mon, 22 Oct 2012 20:23:04 +0000 (20:23 +0000)
committerXiang Ni <xini@login4.intrepid.alcf.anl.gov>
Mon, 22 Oct 2012 20:23:04 +0000 (20:23 +0000)
src/ck-core/cklocation.C
src/ck-core/ckmemcheckpoint.C

index c5e2dd44aa2765dde2dd78cfb87b5d77c7a64b03..ec2de4f022929da33e3d3fe10cb9a444aaa13e41 100644 (file)
@@ -2206,11 +2206,14 @@ CmiBool CkLocMgr::addElementToRec(CkLocRec_local *rec,ManagerRec *m,
        
        return CmiTrue;
 }
        
        return CmiTrue;
 }
+#include "dcmf.h"
 void CkLocMgr::updateLocation(const CkArrayIndex &idx,int nowOnPe) {
        inform(idx,nowOnPe);
        CProxy_CkMemCheckPT checkptMgr(ckCheckPTGroupID);
 void CkLocMgr::updateLocation(const CkArrayIndex &idx,int nowOnPe) {
        inform(idx,nowOnPe);
        CProxy_CkMemCheckPT checkptMgr(ckCheckPTGroupID);
-       if(CkInRestarting())
-       checkptMgr[nowOnPe].gotReply();
+       if(CkInRestarting()){
+       //      CkPrintf("[%d] reply to %d at %lf\n",CkMyPe(),nowOnPe,DCMF_Timer());
+       //      checkptMgr[nowOnPe].gotReply();
+       }
 }
 
 /*************************** LocMgr: DELETION *****************************/
 }
 
 /*************************** LocMgr: DELETION *****************************/
index ac01b5fa545f4882a17d6819f8bedc81d190442c..69ca190d0b835ec0c3674e5841372af3ac1654b2 100644 (file)
@@ -67,7 +67,7 @@ void noopck(const char*, ...)
 
 #define CMK_CHKP_ALL           1
 #define CMK_USE_BARRIER                1
 
 #define CMK_CHKP_ALL           1
 #define CMK_USE_BARRIER                1
-#define STREAMING_INFORMHOME                    1
+#define STREAMING_INFORMHOME                    0
 CpvDeclare(int, _crashedNode);
 
 // static, so that it is accessible from Converse part
 CpvDeclare(int, _crashedNode);
 
 // static, so that it is accessible from Converse part
@@ -960,6 +960,7 @@ void CkMemCheckPT::updateLocations(int n, CkGroupID *g, CkArrayIndex *idx,int no
   }
 }
 
   }
 }
 
+#include "dcmf.h"
 // restore array elements
 void CkMemCheckPT::recoverArrayElements()
 {
 // restore array elements
 void CkMemCheckPT::recoverArrayElements()
 {
@@ -973,10 +974,10 @@ void CkMemCheckPT::recoverArrayElements()
  int flag = 0;
   // recover all array elements
   int count = 0;
  int flag = 0;
   // recover all array elements
   int count = 0;
-#if STREAMING_INFORMHOME
+//#if STREAMING_INFORMHOME
   CkVec<CkGroupID> * gmap = new CkVec<CkGroupID>[CkNumPes()];
   CkVec<CkArrayIndex> * imap = new CkVec<CkArrayIndex>[CkNumPes()];
   CkVec<CkGroupID> * gmap = new CkVec<CkGroupID>[CkNumPes()];
   CkVec<CkArrayIndex> * imap = new CkVec<CkArrayIndex>[CkNumPes()];
-#endif
+//#endif
 #if !CMK_CHKP_ALL
   for (int idx=0; idx<len; idx++)
   {
 #if !CMK_CHKP_ALL
   for (int idx=0; idx<len; idx++)
   {
@@ -1020,13 +1021,13 @@ void CkMemCheckPT::recoverArrayElements()
   for (int i=0; i<CkNumPes(); i++) {
     if (gmap[i].size() && i!=CkMyPe()&& i==thisFailedPe) {
       thisProxy[i].updateLocations(gmap[i].size(), gmap[i].getVec(), imap[i].getVec(), CkMyPe());
   for (int i=0; i<CkNumPes(); i++) {
     if (gmap[i].size() && i!=CkMyPe()&& i==thisFailedPe) {
       thisProxy[i].updateLocations(gmap[i].size(), gmap[i].getVec(), imap[i].getVec(), CkMyPe());
-       CkPrintf("[%d] send to %d\n",CkMyPe(),i);
+       CkPrintf("[%d] send to %d at %lf\n",CkMyPe(),i,DCMF_Timer());
        flag++; 
        }
   }
        flag++; 
        }
   }
+#endif
   delete [] imap;
   delete [] gmap;
   delete [] imap;
   delete [] gmap;
-#endif
   DEBUGF("[%d] recoverArrayElements restore %d objects\n", CkMyPe(), count);
 
   CKLOCMGR_LOOP(mgr->doneInserting(););
   DEBUGF("[%d] recoverArrayElements restore %d objects\n", CkMyPe(), count);
 
   CKLOCMGR_LOOP(mgr->doneInserting(););
@@ -1044,6 +1045,7 @@ if(flag == 0)
 }
 
 void CkMemCheckPT::gotReply(){
 }
 
 void CkMemCheckPT::gotReply(){
+       CkPrintf("[%d] got reply at %lf\n",CkMyPe(),DCMF_Timer());
     contribute(CkCallback(CkReductionTarget(CkMemCheckPT, finishUp), thisProxy));
 }
 
     contribute(CkCallback(CkReductionTarget(CkMemCheckPT, finishUp), thisProxy));
 }
 
@@ -1059,10 +1061,14 @@ void CkMemCheckPT::recoverAll(CkArrayCheckPTMessage * msg,CkVec<CkGroupID> * gma
                        p|gID;
                        p|idx;
                        CkLocMgr * mgr = (CkLocMgr *)CkpvAccess(_groupTable)->find(gID).getObj();
                        p|gID;
                        p|idx;
                        CkLocMgr * mgr = (CkLocMgr *)CkpvAccess(_groupTable)->find(gID).getObj();
+                       int homePe = mgr->homePe(idx);
 #if STREAMING_INFORMHOME
                        mgr->resume(idx,p,CmiFalse);
 #else
 #if STREAMING_INFORMHOME
                        mgr->resume(idx,p,CmiFalse);
 #else
-                       mgr->resume(idx,p,CmiTrue);
+                       if(homePe == thisFailedPe && homePe!=CkMyPe())
+                               mgr->resume(idx,p,CmiTrue);
+                       else
+                               mgr->resume(idx,p,CmiFalse);
 #endif
                          /*CkLocRec_local *rec = loc.getLocalRecord();
                          CmiAssert(rec);
 #endif
                          /*CkLocRec_local *rec = loc.getLocalRecord();
                          CmiAssert(rec);