extend trace-summary +sumonly to be working when only partial log files are generated.
authorGengbin Zheng <gzheng@illinois.edu>
Tue, 13 Aug 2002 17:11:45 +0000 (17:11 +0000)
committerGengbin Zheng <gzheng@illinois.edu>
Tue, 13 Aug 2002 17:11:45 +0000 (17:11 +0000)
src/ck-perf/trace-summary.C
src/ck-perf/trace-summary.ci
src/ck-perf/trace-summaryBOC.h

index e0c6aa5acf311fb9a978a8d8cec7b1d2ac6edfde..e71cb60b92f35b84be48fa4be6ccedeac0c34fcf 100644 (file)
@@ -474,22 +474,29 @@ void TraceSummaryBOC::askSummary()
 #endif
 #endif
 
 #endif
 #endif
 
+  int n=0;
+  BinEntry *bins = NULL;
+  int traced = TRACE_CHARM_PE();
+  if (traced) {
   CkpvAccess(_trace)->endComputation();
   CkpvAccess(_trace)->endComputation();
-  int n = CkpvAccess(_trace)->pool()->getNumEntries();
-  BinEntry *bins = CkpvAccess(_trace)->pool()->bins();
+  n = CkpvAccess(_trace)->pool()->getNumEntries();
+  bins = CkpvAccess(_trace)->pool()->bins();
 #if 1
 #if 1
-CmiPrintf("askSummary on [%d] numEntried=%d\n", CkMyPe(), n);
-for (int i=0; i<n; i++) 
-  CmiPrintf("%4d", bins[i].getU());
-CmiPrintf("\n");
+  CmiPrintf("askSummary on [%d] numEntried=%d\n", CkMyPe(), n);
+#if 0
+  for (int i=0; i<n; i++) 
+    CmiPrintf("%4d", bins[i].getU());
+  CmiPrintf("\n");
+#endif
 #endif
 #endif
+  }
   CProxy_TraceSummaryBOC p(traceSummaryGID);
   CProxy_TraceSummaryBOC p(traceSummaryGID);
-  p[0].sendSummaryBOC(n, bins);
+  p[0].sendSummaryBOC(traced, n, bins);
 }
 
 extern "C" void _CkExit();
 
 }
 
 extern "C" void _CkExit();
 
-void TraceSummaryBOC::sendSummaryBOC(int n, BinEntry *b)
+void TraceSummaryBOC::sendSummaryBOC(int traced, int n, BinEntry *b)
 {
   int i;
   if (CkpvAccess(_trace) == NULL) return;
 {
   int i;
   if (CkpvAccess(_trace) == NULL) return;
@@ -507,9 +514,12 @@ void TraceSummaryBOC::sendSummaryBOC(int n, BinEntry *b)
     nBins = CkpvAccess(_trace)->pool()->getNumEntries();
     bins = new BinEntry[nBins];
   }
     nBins = CkpvAccess(_trace)->pool()->getNumEntries();
     bins = new BinEntry[nBins];
   }
-  if (n>nBins) n = nBins;
-  for (i=0; i<n; i++) {
-    bins[i].Time() += b[i].Time();
+  if (traced) {
+    nTracedPEs ++;
+    if (n>nBins) n = nBins;
+    for (i=0; i<n; i++) {
+      bins[i].Time() += b[i].Time();
+    }
   }
   if (count == CkNumPes()) {
     write();
   }
   if (count == CkNumPes()) {
     write();
@@ -530,7 +540,7 @@ void TraceSummaryBOC::write(void)
       CmiAbort("Cannot open summary sts file for writing.\n");
   delete[] fname;
 
       CmiAbort("Cannot open summary sts file for writing.\n");
   delete[] fname;
 
-  fprintf(sumfp, "ver:%3.1f %d/%d count:%d ep:%d interval:%e", CkpvAccess(version), CkMyPe(), CkNumPes(), nBins, _numEntries, CkpvAccess(binSize));
+  fprintf(sumfp, "ver:%3.1f %d/%d count:%d ep:%d interval:%e numTracedPE:%d", CkpvAccess(version), CkMyPe(), CkNumPes(), nBins, _numEntries, CkpvAccess(binSize), nTracedPEs);
   fprintf(sumfp, "\n");
 
   // write bin time
   fprintf(sumfp, "\n");
 
   // write bin time
@@ -553,7 +563,7 @@ void TraceSummaryBOC::write(void)
   if (count > 1) fprintf(fp, "+%d", count);
 #else
   for(j=0; j<nBins; j++) {
   if (count > 1) fprintf(fp, "+%d", count);
 #else
   for(j=0; j<nBins; j++) {
-    bins[j].Time() /= CkNumPes();
+    bins[j].Time() /= nTracedPEs;
     bins[j].write(sumfp);
   }
 #endif
     bins[j].write(sumfp);
   }
 #endif
index 4bb66f50426a71a158948b5ce14bbcdbfc9efa91..ce7497d83c0e5979eb3c91d531b60b93c63c44af 100644 (file)
@@ -12,7 +12,7 @@ module TraceSummary {
   group TraceSummaryBOC {
     entry TraceSummaryBOC(void);
     entry void askSummary();
   group TraceSummaryBOC {
     entry TraceSummaryBOC(void);
     entry void askSummary();
-    entry void sendSummaryBOC(int n, BinEntry s[n]);
+    entry void sendSummaryBOC(int traced, int n, BinEntry s[n]);
   };
 
 };
   };
 
 };
index c88ab4006be177a410469deb86c3b3224d1a88c2..52a405c76ac4ac70249b9d3fe7813643d7c3b2a4 100644 (file)
@@ -16,11 +16,12 @@ private:
   int count;
   BinEntry *bins;
   int  nBins;
   int count;
   BinEntry *bins;
   int  nBins;
+  int nTracedPEs;
 public:
 public:
-  TraceSummaryBOC(void): count(0), bins(NULL), nBins(0) {};
+  TraceSummaryBOC(void): count(0), bins(NULL), nBins(0), nTracedPEs(0) {};
   TraceSummaryBOC(CkMigrateMessage *m) {};
   void askSummary();
   TraceSummaryBOC(CkMigrateMessage *m) {};
   void askSummary();
-  void sendSummaryBOC(int n, BinEntry *b);
+  void sendSummaryBOC(int traced, int n, BinEntry *b);
 private:
   void write();
 };
 private:
   void write();
 };