added a field for charm EP, increase bglog version to 4.
authorGengbin Zheng <gzheng@illinois.edu>
Tue, 30 Sep 2008 12:51:22 +0000 (12:51 +0000)
committerGengbin Zheng <gzheng@illinois.edu>
Tue, 30 Sep 2008 12:51:22 +0000 (12:51 +0000)
Added a log flag to indicate if a standalone event is QD or not.

src/langs/bluegene/bigsim_logs.C
src/langs/bluegene/bigsim_logs.h

index 3aaab1658e596e126a2b300a18bf441e974ea95a..b708b46a3a1d0ca4c40fee20c671fc96a5a2f880 100644 (file)
@@ -11,7 +11,7 @@
      * objId changed to 4 ints 
 */
 
-int bglog_version = 3;
+int bglog_version = BG_CURRENT_VERSION;
 
 int genTimeLog = 0;                    // was 1 for guna 's seq correction
 int correctTimeLog = 0;
@@ -134,6 +134,7 @@ BgTimeLog::BgTimeLog(BgTimeLog *log)
 {
   strncpy(name,log->name,20);
   ep = log->ep;
+  charm_ep = -1;
   startTime = log->startTime;
   recvTime = log->recvTime;
   endTime = 0.0;
@@ -151,6 +152,7 @@ BgTimeLog::BgTimeLog(const BgMsgID &msgID)
   msgId = msgID;
   strcpy(name, "msgep");
   ep = -1;
+  charm_ep = -1;
   startTime = -1.0;
   recvTime = -1.0;
   endTime = execTime = 0.0;
@@ -186,6 +188,7 @@ BgTimeLog::BgTimeLog(int epc, char* namestr,double sTime)
     namestr = (char*)"dummyname1";
   strncpy(name,namestr,20);
   ep = epc;
+  charm_ep = -1;
   startTime = sTime;
   recvTime = -1.0;//stime;
   endTime = execTime = 0.0;
@@ -204,6 +207,7 @@ BgTimeLog::BgTimeLog(int epc, char* namestr, double sTime, double eTime)
     namestr = (char*)"dummyname2";
   strncpy(name,namestr, 20);
   ep = epc;
+  charm_ep = -1;
   startTime = sTime;
   recvTime = -1.0; //sTime;
   endTime = eTime;
@@ -228,6 +232,7 @@ BgTimeLog::BgTimeLog(char *msg, char *str)
   execTime = 0.0;
   recvTime = 0.0;
   ep = -1;
+  charm_ep = -1;
   if (msg) {
     ep = CmiBgMsgHandle(msg);
     recvTime = CmiBgMsgRecvTime(msg);  //startTime;
@@ -281,7 +286,11 @@ void BgTimeLog::write(FILE *fp)
 { 
   int i;
 //  fprintf(fp,"%p ep:%d name:%s (srcnode:%d msgID:%d) startTime:%f endTime:%f recvime:%f effRecvTime:%e seqno:%d startevent:%d\n", this, ep, name, msgId.node(), msgId.msgID(), startTime, endTime, recvTime, effRecvTime, seqno, isStartEvent());
-  fprintf(fp,"%p name:%s (srcnode:%d msgID:%d) ep:%d %s\n", this, name, msgId.node(), msgId.msgID(), ep, isStartEvent()?"STARTEVENT":"");
+  fprintf(fp,"%p name:%s (srcnode:%d msgID:%d) ep:%d ", this, name, msgId.node(), msgId.msgID(), ep);
+  if (isStartEvent()) fprintf(fp, "STARTEVENT");
+  if (isQDEvent()) fprintf(fp, "QDEVENT");
+  fprintf(fp, "\n");
+
   fprintf(fp," recvtime:%f startTime:%f endTime:%f execTime:%f\n", recvTime, startTime, endTime, execTime);
   if (bglog_version >= 2) {
     if (!objId.isNull())
@@ -370,6 +379,7 @@ void BgTimeLog::pup(PUP::er &p){
 
     p|ep; 
     p|seqno; p|msgId;
+    if (bglog_version >= 4) p(charm_ep);
     p|recvTime; p|effRecvTime;p|startTime; p|execTime; p|endTime; 
     p|flag; p(name,20);
     if (bglog_version >= 3)
@@ -412,6 +422,7 @@ void BgTimeLog::pup(PUP::er &p){
     for(i=0;i<l;i++){
       if(p.isUnpacking()){
        p|idx;
+        CmiAssert(currTline != NULL);
        addBackwardDep(currTline->timeline[idx]);
       }
       else{
index 57d19b74a24ac14f6fbd0a8bd4427ed7e4ae42f8..053b8ebca9fcddf38e29be9197fe58618000ca65 100644 (file)
@@ -15,6 +15,8 @@
 #include "blue_defs.h"
 #include "cklists.h"
 
+#define BG_CURRENT_VERSION      4
+
 extern int bglog_version;
 
 extern int bgcorroff;
@@ -107,6 +109,7 @@ public:
 };
 
 #define BG_STARTSIM     0x1
+#define BG_QD           0x2
 
 extern void BgDelaySend(BgMsgEntry *msgEntry);
 
@@ -120,6 +123,7 @@ public:
   int ep;
   int seqno;
   BgMsgID  msgId;      // incoming message that generates this log
+  short charm_ep;
 
   CmiObjId objId;
 
@@ -143,7 +147,7 @@ public:
   BgTimeLog(BgTimeLog *);
   BgTimeLog(const BgMsgID &msgID);
   BgTimeLog(char *msg, char *str=NULL);
-  BgTimeLog(): ep(-1), recvTime(.0), startTime(.0), endTime(.0), execTime(.0), 
+  BgTimeLog(): ep(-1), charm_ep(-1), recvTime(.0), startTime(.0), endTime(.0), execTime(.0), 
               effRecvTime(INVALIDTIME), seqno(0), doCorrect(1), flag(0) 
     {strcpy(name,"dummyname");}
   BgTimeLog(int epc, char* name, double sTime, double eTime);
@@ -152,6 +156,7 @@ public:
 
   inline void setName(char *_name) { strncpy(name, _name, 20); }
   inline void setEP(int _ep) { ep = _ep; }
+  inline void setCharmEP(short _ep) { charm_ep = _ep; }
   inline void setTime(double stime, double etime) {
          startTime = stime;
          endTime = etime;
@@ -178,6 +183,7 @@ public:
 
   inline void setStartEvent() { flag |= BG_STARTSIM; }
   inline int isStartEvent() { return (flag & BG_STARTSIM); }
+  inline int isQDEvent() { return (flag & BG_QD); }
 
   // add backward dep of the log corresponent to msg
   void addMsgBackwardDep(BgTimeLineRec &tlinerec, void* msg);