revise app interation API for better interface
authorYanhua Sun <sun51@illinois.edu>
Fri, 20 Sep 2013 21:31:18 +0000 (16:31 -0500)
committerYanhua Sun <sun51@illinois.edu>
Fri, 20 Sep 2013 21:31:18 +0000 (16:31 -0500)
src/ck-perf/trace-bluegene.h
src/ck-perf/trace-common.C
src/ck-perf/trace-projections.C
src/ck-perf/trace-projections.h
src/ck-perf/trace-simple.h
src/ck-perf/trace.h
src/ck-tune/trace-autoPerf.C
src/ck-tune/trace-autoPerf.h
src/ck-tune/trace-perf.C
src/conv-core/conv-trace.h

index 63634bc7fc9e246e574978149c1e59a9e2e6c4b5..2f5c90ceba84cd7706a30e954c3943e58eecac37 100644 (file)
@@ -34,7 +34,6 @@ class TraceBluegene : public Trace {
     virtual void beginExecute(int event,int msgType,int ep,int srcPe, int mlen,CmiObjId *idx);
     void addBackwardDep(void *log);
     void userBracketEvent(int eventID, double bt, double et) {}        // from trace.h
-    void appWork(int e, double bt, double et){}
     void userBracketEvent(const char* name, double bt, double et, void** parentLogPtr);
     void userBracketEvent(const char* name, double bt, double et, void** parentLogPtr, CkVec<void*> bgLogList);
     void bgPrint(const char* str);
index 94a0ba9ae46007a15773e97b53b34689991d9de3..c4a7f351b5a87c6d1f09dc6e8a9e7a2ff9ba7763 100644 (file)
@@ -43,7 +43,6 @@ CkpvDeclare(char*, partitionRoot);
 CkpvDeclare(int, traceRootBaseLength);
 CkpvDeclare(char*, selective);
 CkpvDeclare(bool, verbose);
-CkpvDeclare(double, startUsefulWorkTimer);
 
 typedef void (*mTFP)();                   // function pointer for
 CpvStaticDeclare(mTFP, machineTraceFuncPtr);    // machine user event
@@ -63,8 +62,6 @@ static void traceCommonInit(char **argv)
   CkpvAccess(traceInitTime) = CmiStartTimer();
   CkpvInitialize(double, traceInitCpuTime);
   CkpvAccess(traceInitCpuTime) = TRACE_CPUTIMER();
-  CkpvInitialize(double, startUsefulWorkTimer);
-  CkpvAccess(startUsefulWorkTimer) = TRACE_CPUTIMER();
   CpvInitialize(int, traceOn);
   CpvAccess(traceOn) = 0;
   CpvInitialize(int, _traceCoreOn); //projector
@@ -478,20 +475,23 @@ void traceUserEvent(int e)
 }
 
 extern "C" 
-void traceStartUsefulWork()
+void beginAppWork()
 {
 #if CMK_TRACE_ENABLED
-    CkpvAccess(startUsefulWorkTimer) = TraceTimer();
+    if (CpvAccess(traceOn) && CkpvAccess(_traces))
+    {
+        CkpvAccess(_traces)->beginAppWork();
+    }
 #endif
 }
 
 extern "C" 
-void traceStopUsefulWork()
+void endAppWork()
 {
 #if CMK_TRACE_ENABLED
     if (CpvAccess(traceOn) && CkpvAccess(_traces))
     {
-        CkpvAccess(_traces)->appWork(1, CkpvAccess(startUsefulWorkTimer), TraceTimer());
+        CkpvAccess(_traces)->endAppWork();
     }
 #endif
 }
index 8db601af862e9ccc07fe923a9cf082a8036db58b..4e13616a7681d0274d57c876af926550bf93ffa7 100644 (file)
@@ -1332,10 +1332,6 @@ void TraceProjections::userBracketEvent(int e, double bt, double et)
   _logPool->add(USER_EVENT_PAIR, e, 0, TraceTimer(et), curevent++, CkMyPe());
 }
 
-void TraceProjections::appWork(int e, double bt, double et)
-{
-}
-
 void TraceProjections::userSuppliedData(int d)
 {
   if (!computationStarted) return;
index eae9bcf2e6fe48767ac8065d7789d2c5d3b18a64..14359e44b647cd532048d2f809b3f310aad82325 100644 (file)
@@ -483,7 +483,6 @@ public:
     TraceProjections(char **argv);
     void userEvent(int e);
     void userBracketEvent(int e, double bt, double et);
-    void appWork(int e, double bt, double et);
     void userSuppliedBracketedNote(char*, int, double, double);
 
     void userSuppliedData(int e);
index d6c0d1ab9b67ca5ede719b170d77cfb55723764c..9188281ce73ea2b4e2c4948704cda6c0e7f92296 100644 (file)
@@ -27,7 +27,6 @@ class TraceSimple : public Trace {
   // a pair of begin/end user event has just occured
   void userBracketEvent(int eventID, double bt, double et);
   
-  void appWork(int e, double bt, double et);
   // "creation" of message(s) - message Sends
   void creation(envelope *, int epIdx, int num=1);
   void creation(char *msg) {}
index 8f6ba0d2331da99ec519c2ddec8b4a83197b4853..eb5bc06799b60c8741d0e3ca0dec07940e9ee37e 100644 (file)
@@ -78,7 +78,8 @@ protected:
     // a pair of begin/end user event has just occured
     virtual void userBracketEvent(int eventID, double bt, double et) {}
     //interact with application 
-    virtual void appWork(int eventID, double bt, double et) {}
+    virtual void beginAppWork() {}
+    virtual void endAppWork() {}
 
     // a user supplied integer value(likely a timestep)
     virtual void userSuppliedData(int e) {}
@@ -207,8 +208,10 @@ public:
 
     inline void userEvent(int e) { ALLDO(userEvent(e));}
     inline void userBracketEvent(int e,double bt, double et) {ALLDO(userBracketEvent(e,bt,et));}
-    inline void appWork(int e,double bt, double et) {ALLDO(appWork(e,bt,et));}
     
+    inline void beginAppWork() { ALLDO(beginAppWork());}
+    inline void endAppWork() { ALLDO(endAppWork());}
+
        inline void userSuppliedData(int d) { ALLDO(userSuppliedData(d));}
 
        inline void userSuppliedNote(char *note) { ALLDO(userSuppliedNote(note));}
@@ -317,7 +320,8 @@ extern "C" {
 
 #define _TRACE_USER_EVENT(x) _TRACE_ONLY(CkpvAccess(_traces)->userEvent(x))
 #define _TRACE_USER_EVENT_BRACKET(x,bt,et) _TRACE_ONLY(CkpvAccess(_traces)->userBracketEvent(x,bt,et))
-#define _TRACE_APPWORK(x,bt,et) _TRACE_ONLY(CkpvAccess(_traces)->appWork(x,bt,et))
+#define _TRACE_BEGIN_APPWORK() _TRACE_ONLY(CkpvAccess(_traces)->beginAppWork())
+#define _TRACE_END_APPWORK() _TRACE_ONLY(CkpvAccess(_traces)->endAppWork())
 #define _TRACE_CREATION_1(env) _TRACE_ONLY(CkpvAccess(_traces)->creation(env,env->getEpIdx()))
 #define _TRACE_CREATION_DETAILED(env,ep) _TRACE_ONLY(CkpvAccess(_traces)->creation(env,ep))
 #define _TRACE_CREATION_N(env, num) _TRACE_ONLY(CkpvAccess(_traces)->creation(env, env->getEpIdx(), num))
index 2233c46ab277b96def13738154b948922fddad3b..3d3786a92db7e62bb23c2c113ba700eac2d004f4 100644 (file)
@@ -238,7 +238,6 @@ void TraceAutoPerfBOC::generatePerfModel()
 }
 
 extern "C" void traceAutoPerfExitFunction() {
-    CkPrintf("calling before exiting............................\n");
     autoPerfProxy.timeStep(CkMyPe());
     //CkExit();
 }
index d3653dade29557680fb2a307ead06b2433466bdc..d22fabf69b72f3b1ea4593c38f3d7af69df20eaf 100644 (file)
@@ -272,6 +272,7 @@ public:
     /** The amount of time spent executing entry methods since we last reset the counters */
     double totalEntryMethodTime;
 
+    double appWorkStartTimer;
     /** the amount of application useful work, need app knowledge */
     double totalAppTime;
 
@@ -315,7 +316,8 @@ public:
   void userEvent(int eventID);
   // a pair of begin/end user event has just occured
   void userBracketEvent(int eventID, double bt, double et);
-  void appWork(int eventID, double bt, double et);
+  void beginAppWork();
+  void endAppWork();
   
   // "creation" of message(s) - message Sends
   void creation(envelope *, int epIdx, int num=1);
index 9179c7b04d09749a531f3d09445174d10b709fb5..a618d0713309930af24b456812f52be56d3ccc63 100644 (file)
@@ -1,4 +1,3 @@
-
 CkpvStaticDeclare(TraceAutoPerf*, _trace);
 //-------- group information ---------------------------
 
@@ -73,9 +72,16 @@ void TraceAutoPerf::traceEnd(void){
 void TraceAutoPerf::userEvent(int eventID) { }
 void TraceAutoPerf::userBracketEvent(int eventID, double bt, double et) { }
 
-void TraceAutoPerf::appWork(int eventID, double bt, double et) { 
-    totalAppTime += (et-bt);
+void TraceAutoPerf::beginAppWork() 
+{
+    appWorkStartTimer = TraceTimer();
+}
+
+void TraceAutoPerf::endAppWork() 
+{
+    totalAppTime += (TraceTimer() - appWorkStartTimer);
 }
+
 void TraceAutoPerf::creation(envelope *, int epIdx, int num) { } 
 void TraceAutoPerf::creationMulticast(envelope *, int epIdx, int num, int *pelist) { }
 void TraceAutoPerf::creationDone(int num) { }
index 52863fa868785ee0020e1632b974f4b3d9e8bdf3..58954185cdff4135dcbbe985a8e11a075c43427a 100644 (file)
@@ -17,8 +17,8 @@ void traceResume(CmiObjId *);
 void traceSuspend(void);
 void traceAwaken(CthThread t);
 void traceUserEvent(int);
-void traceStartUsefulWork();
-void traceStopUsefulWork();
+void beginAppWork();
+void endAppWork();
 void traceUserBracketEvent(int, double, double);
 void traceUserSuppliedData(int);
 void traceUserSuppliedBracketedNote(char *note, int eventID, double bt, double et);