instrument num. opening criterion calls
authorPritish Jetley <pjetley2@illinois.edu>
Fri, 14 Oct 2011 19:23:49 +0000 (14:23 -0500)
committerPritish Jetley <pjetley2@illinois.edu>
Fri, 14 Oct 2011 19:23:49 +0000 (14:23 -0500)
DataManager.cpp
DataManager.h
Descriptor.h
State.h
TreePiece.cpp
Worker.cpp
barnes.ci

index 50def95..efeae65 100644 (file)
@@ -47,6 +47,7 @@ DataManager::DataManager() :
 #ifdef STATISTICS
   numInteractions[0] = 0;
   numInteractions[1] = 0;
+  numInteractions[2] = 0;
 #endif
   savedEnergy = 0.0;
 }
@@ -1075,7 +1076,7 @@ void DataManager::recvNode(NodeReplyMsg *msg){
 }
 
 #ifdef STATISTICS
-void DataManager::traversalsDone(CmiUInt8 pnInter, CmiUInt8 ppInter)
+void DataManager::traversalsDone(CmiUInt8 pnInter, CmiUInt8 ppInter, CmiUInt8 openCrit)
 #else
 void DataManager::traversalsDone()
 #endif
@@ -1084,6 +1085,7 @@ void DataManager::traversalsDone()
 #ifdef STATISTICS
   numInteractions[0] += pnInter;
   numInteractions[1] += ppInter;
+  numInteractions[2] += openCrit;
 #endif
   if(numTreePiecesDoneTraversals == numLocalTreePieces){
     finishIteration();
@@ -1107,8 +1109,10 @@ void DataManager::finishIteration(){
 #ifdef STATISTICS
   dtred.pnInteractions = numInteractions[0];
   dtred.ppInteractions = numInteractions[1];
+  dtred.openCrit = numInteractions[2];
   numInteractions[0] = 0;
   numInteractions[1] = 0;
+  numInteractions[2] = 0;
 #endif
 
   CkCallback cb(CkIndex_DataManager::advance(NULL),thisProxy);
@@ -1137,7 +1141,7 @@ void DataManager::advance(CkReductionMsg *msg){
 
   if(CkMyPe() == 0){
 #ifdef STATISTICS
-    CkPrintf("[STATS] node inter %lu part inter %lu dt %f\n", dtred->pnInteractions, dtred->ppInteractions, globalParams.dtime);
+    CkPrintf("[STATS] node inter %lu part inter %lu open crit %lu dt %f\n", dtred->pnInteractions, dtred->ppInteractions, dtred->openCrit, globalParams.dtime);
 #endif
   }
 
index 72cd7b3..0aa9ac7 100644 (file)
@@ -124,7 +124,7 @@ class DataManager : public CBase_DataManager {
   Real savedEnergy;
 
 #ifdef STATISTICS
-  CmiUInt8 numInteractions[2];
+  CmiUInt8 numInteractions[3];
 #endif
 
   void kickDriftKick(OrientedBox<Real> &box, Real &energy);
@@ -189,7 +189,7 @@ class DataManager : public CBase_DataManager {
   void requestMoments(Key k, int replyTo);
   void advance(CkReductionMsg *);
 #ifdef STATISTICS
-  void traversalsDone(CmiUInt8 pnInter, CmiUInt8 ppInter);
+  void traversalsDone(CmiUInt8 pnInter, CmiUInt8 ppInter, CmiUInt8 openCrit);
 #else
   void traversalsDone();
 #endif
index 5f6652e..255c951 100644 (file)
@@ -162,6 +162,7 @@ struct DtReductionStruct {
 #ifdef STATISTICS 
   CmiUInt8 pnInteractions;
   CmiUInt8 ppInteractions;
+  CmiUInt8 openCrit;
 #endif
   Real vbya;
   bool haveNaN;
@@ -170,6 +171,7 @@ struct DtReductionStruct {
 #ifdef STATISTICS
     pnInteractions += other.pnInteractions;
     ppInteractions += other.ppInteractions;
+    openCrit += other.openCrit;
 #endif
     if(other.haveNaN) haveNaN = true;
 
diff --git a/State.h b/State.h
index 3ac7907..2da6b27 100644 (file)
--- a/State.h
+++ b/State.h
@@ -25,7 +25,7 @@ struct State {
 #endif
 
 #ifdef STATISTICS
-  CmiUInt8 numInteractions[2];
+  CmiUInt8 numInteractions[3];
 #endif
 
 #ifdef TREE_PIECE_LOG
@@ -62,6 +62,7 @@ struct State {
 #ifdef STATISTICS
     numInteractions[0] = 0;
     numInteractions[1] = 0;
+    numInteractions[2] = 0;
 #endif
   }
   
@@ -81,6 +82,7 @@ struct State {
 #ifdef STATISTICS
     numInteractions[0] = 0;
     numInteractions[1] = 0;
+    numInteractions[2] = 0;
 #endif
   }
 
@@ -103,6 +105,7 @@ struct State {
 #ifdef STATISTICS
     numInteractions[0] = 0;
     numInteractions[1] = 0;
+    numInteractions[2] = 0;
 #endif
 #ifdef CHECK_NUM_INTERACTIONS
     bucketNodeInteractions.clear();
@@ -138,6 +141,12 @@ struct State {
 #endif
 #ifdef CHECK_NUM_INTERACTIONS
     bucketPartInteractions[bucketKey] += n;
+#endif
+  }
+
+  void incrOpenCriterion(){
+#ifdef STATISTICS
+    numInteractions[2]++;
 #endif
   }
 };
index 061cd8c..2b72864 100644 (file)
@@ -133,6 +133,7 @@ void TreePiece::traversalDone(){
 #ifdef STATISTICS
     CmiUInt8 pn = localTraversalState.numInteractions[0]+remoteTraversalState.numInteractions[0];
     CmiUInt8 pp = localTraversalState.numInteractions[1]+remoteTraversalState.numInteractions[1];
+    CmiUInt8 oc = localTraversalState.numInteractions[2]+remoteTraversalState.numInteractions[2];
 #ifdef CHECK_NUM_INTERACTIONS
     map<Key,CmiUInt8>::iterator it;
     for(it = localTraversalState.bucketNodeInteractions.begin(); 
@@ -161,8 +162,7 @@ void TreePiece::traversalDone(){
     }
     CkPrintf("[%d] iter %d local %lu remote %lu\n", thisIndex, iteration, pn, pp);
 #endif
-
-    dataManagerProxy[CkMyPe()].traversalsDone(pn,pp);
+    dataManagerProxy[CkMyPe()].traversalsDone(pn,pp,oc);
 #else
     dataManagerProxy[CkMyPe()].traversalsDone();
 #endif
index 12eee82..a7adf99 100644 (file)
@@ -124,6 +124,7 @@ int TraversalWorker::work(Node<ForceData> *node){
 
   // basic opening criterion
   bool open = openCriterionBucket(node,currentBucket,offset);
+  state->incrOpenCriterion();
   if(open){
     state->nodeOpened(currentBucket->getKey(),node);
     return 1;
index bde95e9..8a000aa 100644 (file)
--- a/barnes.ci
+++ b/barnes.ci
@@ -76,7 +76,7 @@ mainmodule barnes {
     entry void recvNode(NodeReplyMsg *msg);
     entry void advance(CkReductionMsg *msg);
 #ifdef STATISTICS
-    entry void traversalsDone(CmiUInt8 pnInter, CmiUInt8 ppInter);
+    entry void traversalsDone(CmiUInt8 pnInter, CmiUInt8 ppInter, CmiUInt8 openCrit);
 #else
     entry void traversalsDone();
 #endif