Some more cleanup related to CMK_OPTIMIZE flag and stats collection.
authorMilind Bhandarkar <milind@cs.uiuc.edu>
Wed, 21 Jul 1999 20:11:12 +0000 (20:11 +0000)
committerMilind Bhandarkar <milind@cs.uiuc.edu>
Wed, 21 Jul 1999 20:11:12 +0000 (20:11 +0000)
src/ck-core/ck.C
src/ck-core/envelope.h
src/ck-core/init.C
src/ck-core/init.h
src/ck-core/stats.h

index f8bd8b652135e459332e164548dffd1be252cc41..50b5b7f8b28a136d3c1806f2213f7938e6159680 100644 (file)
@@ -197,17 +197,13 @@ void _processHandler(void *msg)
       CpvAccess(_qd)->process();
       if(env->isPacked()) _unpackFn((void **)&env);
       _processNewChareMsg(env);
-#ifndef CMK_OPTIMIZE
-      CpvAccess(_myStats)->recordProcessChare();
-#endif
+      _STATS_RECORD_PROCESS_CHARE_1();
       break;
     case NewVChareMsg :
       CpvAccess(_qd)->process();
       if(env->isPacked()) _unpackFn((void **)&env);
       _processNewVChareMsg(env);
-#ifndef CMK_OPTIMIZE
-      CpvAccess(_myStats)->recordProcessChare();
-#endif
+      _STATS_RECORD_PROCESS_CHARE_1();
       break;
     case BocInitMsg :
       CpvAccess(_qd)->process();
@@ -239,25 +235,19 @@ void _processHandler(void *msg)
       CpvAccess(_qd)->process();
       if(env->isPacked()) _unpackFn((void **)&env);
       _processForChareMsg(env);
-#ifndef CMK_OPTIMIZE
-      CpvAccess(_myStats)->recordProcessMsg();
-#endif
+      _STATS_RECORD_PROCESS_MSG_1();
       break;
     case ForBocMsg :
       CpvAccess(_qd)->process();
       if(env->isPacked()) _unpackFn((void **)&env);
       _processForBocMsg(env);
-#ifndef CMK_OPTIMIZE
-      CpvAccess(_myStats)->recordProcessBranch();
-#endif
+      _STATS_RECORD_PROCESS_BRANCH_1();
       break;
     case ForNodeBocMsg :
       CpvAccess(_qd)->process();
       if(env->isPacked()) _unpackFn((void **)&env);
       _processForNodeBocMsg(env);
-#ifndef CMK_OPTIMIZE
-      CpvAccess(_myStats)->recordProcessNodeBranch();
-#endif
+      _STATS_RECORD_PROCESS_NODE_BRANCH_1();
       break;
     case ForVidMsg   :
       CpvAccess(_qd)->process();
@@ -340,9 +330,7 @@ void CkSendMsg(int entryIdx, void *msg, CkChareID *pCid)
     CpvAccess(_qd)->create();
     CldEnqueue(pCid->onPE, env, _infoIdx);
   }
-#ifndef CMK_OPTIMIZE
-  CpvAccess(_myStats)->recordSendMsg();
-#endif
+  _STATS_RECORD_SEND_MSG_1();
 }
 
 extern "C"
@@ -364,9 +352,7 @@ void CkCreateChare(int cIdx, int eIdx, void *msg, CkChareID *pCid, int destPE)
   CmiSetHandler(env, _charmHandlerIdx);
   _TRACE_CREATION_1(env);
   CpvAccess(_qd)->create();
-#ifndef CMK_OPTIMIZE
-  CpvAccess(_myStats)->recordCreateChare();
-#endif
+  _STATS_RECORD_CREATE_CHARE_1();
   _SET_USED(env, 1);
   if(destPE == CK_PE_ANY)
     env->setForAnyPE(1);
@@ -388,9 +374,7 @@ void _createGroupMember(CkGroupID groupID, int eIdx, void *msg)
   _entryTable[eIdx]->call(msg, obj);
   CpvAccess(_currentChare) = prev;
   CpvAccess(_currentGroup) = prevGrp;
-#ifndef CMK_OPTIMIZE
-  CpvAccess(_myStats)->recordProcessGroup();
-#endif
+  _STATS_RECORD_PROCESS_GROUP_1();
 }
 
 void _createNodeGroupMember(CkGroupID groupID, int eIdx, void *msg)
@@ -408,9 +392,7 @@ void _createNodeGroupMember(CkGroupID groupID, int eIdx, void *msg)
   _entryTable[eIdx]->call(msg, obj);
   CpvAccess(_currentChare) = prev;
   CpvAccess(_currentNodeGroup) = prevGrp;
-#ifndef CMK_OPTIMIZE
-  CpvAccess(_myStats)->recordProcessNodeGroup();
-#endif
+  _STATS_RECORD_PROCESS_NODE_GROUP_1();
 }
 
 void _createGroup(CkGroupID groupID, envelope *env, int retEp, CkChareID *retChare)
@@ -441,9 +423,7 @@ void _createGroup(CkGroupID groupID, envelope *env, int retEp, CkChareID *retCha
       _TRACE_END_UNPACK();
     }
   }
-#ifndef CMK_OPTIMIZE
-  CpvAccess(_myStats)->recordCreateGroup();
-#endif
+  _STATS_RECORD_CREATE_GROUP_1();
   _createGroupMember(groupID, epIdx, msg);
   if(retEp) {
     msg = CkAllocMsg(0, sizeof(int), 0); // 0 is a system msg of size int
@@ -481,9 +461,7 @@ void _createNodeGroup(CkGroupID groupID, envelope *env, int retEp, CkChareID *re
       _TRACE_END_UNPACK();
     }
   }
-#ifndef CMK_OPTIMIZE
-  CpvAccess(_myStats)->recordCreateNodeGroup();
-#endif
+  _STATS_RECORD_CREATE_NODE_GROUP_1();
   _createNodeGroupMember(groupID, epIdx, msg);
   if(retEp) {
     msg = CkAllocMsg(0, sizeof(int), 0); // 0 is a system msg of size int
@@ -605,9 +583,7 @@ extern "C"
 void CkSendMsgBranch(int eIdx, void *msg, int pe, CkGroupID gID)
 {
   _TRACE_CREATION_1(UsrToEnv(msg));
-#ifndef CMK_OPTIMIZE
-  CpvAccess(_myStats)->recordSendBranch();
-#endif
+  _STATS_RECORD_SEND_BRANCH_1();
   _sendMsgBranch(eIdx, msg, gID, pe);
   CpvAccess(_qd)->create();
 }
@@ -616,9 +592,7 @@ extern "C"
 void CkBroadcastMsgBranch(int eIdx, void *msg, CkGroupID gID)
 {
   _TRACE_CREATION_N(UsrToEnv(msg), CkNumPes());
-#ifndef CMK_OPTIMIZE
-  CpvAccess(_myStats)->recordSendBranch(CkNumPes());
-#endif
+  _STATS_RECORD_SEND_BRANCH_N(CkNumPes());
   _sendMsgBranch(eIdx, msg, gID);
   CpvAccess(_qd)->create(CkNumPes());
 }
@@ -641,9 +615,7 @@ extern "C"
 void CkSendMsgNodeBranch(int eIdx, void *msg, int node, CkGroupID gID)
 {
   _TRACE_CREATION_1(UsrToEnv(msg));
-#ifndef CMK_OPTIMIZE
-  CpvAccess(_myStats)->recordSendNodeBranch();
-#endif
+  _STATS_RECORD_SEND_NODE_BRANCH_1();
   _sendMsgNodeBranch(eIdx, msg, gID, node);
   CpvAccess(_qd)->create();
 }
@@ -652,9 +624,7 @@ extern "C"
 void CkBroadcastMsgNodeBranch(int eIdx, void *msg, CkGroupID gID)
 {
   _TRACE_CREATION_N(UsrToEnv(msg), CkNumNodes());
-#ifndef CMK_OPTIMIZE
-  CpvAccess(_myStats)->recordSendNodeBranch(CkNumNodes());
-#endif
+  _STATS_RECORD_SEND_NODE_BRANCH_N(CkNumNodes());
   _sendMsgNodeBranch(eIdx, msg, gID);
   CpvAccess(_qd)->create(CkNumNodes());
 }
index a1f75993204ae113f534f2ed12a9493cf9e48acc..908ca6d66112706dc8cbbcc507dacbaf374d1d25 100644 (file)
@@ -13,8 +13,6 @@
 #define _CHECK_USED(env)
 #endif
 
-#ifndef CMK_OPTIMIZE
-#endif
 typedef unsigned int   UInt;
 typedef unsigned short UShort;
 typedef unsigned char  UChar;
index 35cfb8af5abddb559e8a5880dc6e27afafc4af1c..e6273bb136c18bb6f48198aaa2907fc928438d1b 100644 (file)
@@ -3,10 +3,8 @@
 
 UChar _defaultQueueing = CK_QUEUEING_FIFO;
 
-#ifndef CMK_OPTIMIZE
 UInt  _printCS = 0;
 UInt  _printSS = 0;
-#endif
 
 UInt  _numGroups = 0;
 UInt  _numNodeGroups = 0;
@@ -26,15 +24,12 @@ CkErrStream ckerr;
 CkInStream  ckin;
 
 CpvDeclare(void*,       _currentChare);
-CpvDeclare(CkGroupID,         _currentGroup);
-CpvDeclare(CkGroupID,         _currentNodeGroup);
+CpvDeclare(CkGroupID,   _currentGroup);
+CpvDeclare(CkGroupID,   _currentNodeGroup);
 CpvDeclare(GroupTable*, _groupTable);
 GroupTable* _nodeGroupTable = 0;
 
-#ifndef CMK_OPTIMIZE
 CpvDeclare(Stats*, _myStats);
-#endif
-
 CpvDeclare(MsgPool*, _msgPool);
 
 CpvDeclare(_CkOutStream*, _ckout);
@@ -47,31 +42,28 @@ CpvStaticDeclare(PtrQ*, _nodeBocInitQ);
 
 static int    _exitHandlerIdx;
 
-#ifndef CMK_OPTIMIZE
 static Stats** _allStats = 0;
-#endif
 
 static UInt   _numStatsRecd = 0;
 static int    _exitStarted = 0;
 
+#ifndef CMK_OPTIMIZE
+#define _STATS_ON(x) (x) = 1
+#else
+#define _STATS_ON(x) \
+          CmiPrintf("stats unavailable in optimized version. ignoring...\n"); 
+#endif
+
 static inline int _parseCommandLineOpts(int argc, char **argv)
 {
   int found;
   while(*argv) {
     found = 0;
     if(strcmp(*argv, "+cs")==0) {
-#ifndef CMK_OPTIMIZE
-      _printCS = 1; 
-#else
-      CmiPrintf("+cs is not enabled in this optimized version. ignoring...\n");
-#endif
+      _STATS_ON(_printCS);
       found = 1;
     } else if(strcmp(*argv, "+ss")==0) {
-#ifndef CMK_OPTIMIZE
-      _printSS = 1; 
-#else
-      CmiPrintf("+ss is not enabled in this optimized version. ignoring...\n");
-#endif
+      _STATS_ON(_printSS);
       found = 1;
     } else if(strcmp(*argv, "+fifo")==0) {
       _defaultQueueing = CK_QUEUEING_FIFO; found = 1;
@@ -149,6 +141,8 @@ static inline void _printStats(void)
     }
   }
 }
+#else
+static inline void _printStats(void) {}
 #endif
 
 static inline void _sendStats(void)
@@ -197,9 +191,7 @@ static void _exitHandler(envelope *env)
 #endif
       _numStatsRecd++;
       if(_numStatsRecd==CkNumPes()) {
-#ifndef CMK_OPTIMIZE
         _printStats();
-#endif
         _TRACE_END_COMPUTATION();
         CsdExitScheduler();
       }
@@ -437,9 +429,7 @@ void _initCharm(int argc, char **argv)
   CpvInitialize(_CkOutStream*, _ckout);
   CpvInitialize(_CkErrStream*, _ckerr);
 
-#ifndef CMK_OPTIMIZE
   CpvInitialize(Stats*, _myStats);
-#endif
 
   CpvAccess(_buffQ) = new PtrQ();
   CpvAccess(_bocInitQ) = new PtrQ();
@@ -486,15 +476,11 @@ void _initCharm(int argc, char **argv)
     CkRegisterMainModule();
   }
   _TRACE_BEGIN_COMPUTATION();
-#ifndef CMK_OPTIMIZE
   CpvAccess(_myStats) = new Stats();
-#endif
   CpvAccess(_msgPool) = new MsgPool();
   CmiNodeBarrier();
   if(CmiMyPe()==0) {
-#ifndef CMK_OPTIMIZE
     _allStats = new Stats*[CkNumPes()];
-#endif
     register int i;
     for(i=0;i<_numMains;i++) {
       register int size = _chareTable[_mainTable[i]->chareIdx]->size;
@@ -505,10 +491,8 @@ void _initCharm(int argc, char **argv)
       msg->argv = argv;
       _entryTable[_mainTable[i]->entryIdx]->call(msg, obj);
     }
-#ifndef CMK_OPTIMIZE
-    CpvAccess(_myStats)->recordCreateChare(_numMains);
-    CpvAccess(_myStats)->recordProcessChare(_numMains);
-#endif
+    _STATS_RECORD_CREATE_CHARE_N(_numMains);
+    _STATS_RECORD_PROCESS_CHARE_N(_numMains);
     for(i=0;i<_numReadonlyMsgs;i++) {
       register void *roMsg = (void *) *((char **)(_readonlyMsgs[i]->pMsg));
       if(roMsg==0)
index d8231274a08fca5d32be191987d693056c2e7c02..7f720b893a19cf7c0c0e30f1a501d40e07938b0c 100644 (file)
@@ -67,10 +67,8 @@ class GroupTable {
     }
 };
 
-#ifndef CMK_OPTIMIZE
 extern UInt    _printCS;
 extern UInt    _printSS;
-#endif
 
 extern UInt    _numGroups;
 extern UInt    _numNodeGroups;
index 2c7d6b75c6c84edb3144a63722fa6fe86c319ffa..26eda765928b9dba0c03233a31f1f1ced841de51 100644 (file)
@@ -69,11 +69,84 @@ class Stats {
     UInt getNodeGroupsCreated(void) const { return nodeGroupInitsCreated; }
     UInt getNodeGroupsProcessed(void) const { return nodeGroupInitsProcessed; }
     UInt getNodeGroupMsgsCreated(void) const { return nodeGroupMsgsCreated; }
-    UInt getNodeGroupMsgsProcessed(void) const { return nodeGroupMsgsProcessed; }
+    UInt getNodeGroupMsgsProcessed(void) const {return nodeGroupMsgsProcessed;}
 };
 
-#ifndef CMK_OPTIMIZE
 CpvExtern(Stats*, _myStats);
-#endif
 
+#ifndef CMK_OPTIMIZE
+#define _STATS_RECORD_CREATE_CHARE_1() \
+          CpvAccess(_myStats)->recordCreateChare()
+#define _STATS_RECORD_CREATE_CHARE_N(x) \
+          CpvAccess(_myStats)->recordCreateChare(x)
+#define _STATS_RECORD_PROCESS_CHARE_1() \
+          CpvAccess(_myStats)->recordProcessChare()
+#define _STATS_RECORD_PROCESS_CHARE_N(x) \
+          CpvAccess(_myStats)->recordProcessChare(x)
+#define _STATS_RECORD_SEND_MSG_1() \
+          CpvAccess(_myStats)->recordSendMsg()
+#define _STATS_RECORD_SEND_MSG_N(x) \
+          CpvAccess(_myStats)->recordSendMsg(x)
+#define _STATS_RECORD_PROCESS_MSG_1() \
+          CpvAccess(_myStats)->recordProcessMsg()
+#define _STATS_RECORD_PROCESS_MSG_N(x) \
+          CpvAccess(_myStats)->recordProcessMsg(x)
+#define _STATS_RECORD_CREATE_GROUP_1() \
+          CpvAccess(_myStats)->recordCreateGroup()
+#define _STATS_RECORD_CREATE_GROUP_N(x) \
+          CpvAccess(_myStats)->recordCreateGroup(x)
+#define _STATS_RECORD_PROCESS_GROUP_1() \
+          CpvAccess(_myStats)->recordProcessGroup()
+#define _STATS_RECORD_PROCESS_GROUP_N(x) \
+          CpvAccess(_myStats)->recordProcessGroup(x)
+#define _STATS_RECORD_SEND_BRANCH_1() \
+          CpvAccess(_myStats)->recordSendBranch()
+#define _STATS_RECORD_SEND_BRANCH_N(x) \
+          CpvAccess(_myStats)->recordSendBranch(x)
+#define _STATS_RECORD_PROCESS_BRANCH_1() \
+          CpvAccess(_myStats)->recordProcessBranch()
+#define _STATS_RECORD_PROCESS_BRANCH_N(x) \
+          CpvAccess(_myStats)->recordProcessBranch(x)
+#define _STATS_RECORD_CREATE_NODE_GROUP_1() \
+          CpvAccess(_myStats)->recordCreateNodeGroup()
+#define _STATS_RECORD_CREATE_NODE_GROUP_N(x) \
+          CpvAccess(_myStats)->recordCreateNodeGroup(x)
+#define _STATS_RECORD_PROCESS_NODE_GROUP_1() \
+          CpvAccess(_myStats)->recordProcessNodeGroup()
+#define _STATS_RECORD_PROCESS_NODE_GROUP_N(x) \
+          CpvAccess(_myStats)->recordProcessNodeGroup(x)
+#define _STATS_RECORD_SEND_NODE_BRANCH_1() \
+          CpvAccess(_myStats)->recordSendNodeBranch()
+#define _STATS_RECORD_SEND_NODE_BRANCH_N(x) \
+          CpvAccess(_myStats)->recordSendNodeBranch(x)
+#define _STATS_RECORD_PROCESS_NODE_BRANCH_1() \
+          CpvAccess(_myStats)->recordProcessNodeBranch()
+#define _STATS_RECORD_PROCESS_NODE_BRANCH_N(x) \
+          CpvAccess(_myStats)->recordProcessNodeBranch(x)
+#else
+#define _STATS_RECORD_CREATE_CHARE_1()
+#define _STATS_RECORD_CREATE_CHARE_N(x)
+#define _STATS_RECORD_PROCESS_CHARE_1()
+#define _STATS_RECORD_PROCESS_CHARE_N(x)
+#define _STATS_RECORD_SEND_MSG_1()
+#define _STATS_RECORD_SEND_MSG_N(x)
+#define _STATS_RECORD_PROCESS_MSG_1()
+#define _STATS_RECORD_PROCESS_MSG_N(x)
+#define _STATS_RECORD_CREATE_GROUP_1()
+#define _STATS_RECORD_CREATE_GROUP_N(x)
+#define _STATS_RECORD_PROCESS_GROUP_1()
+#define _STATS_RECORD_PROCESS_GROUP_N(x)
+#define _STATS_RECORD_SEND_BRANCH_1()
+#define _STATS_RECORD_SEND_BRANCH_N(x)
+#define _STATS_RECORD_PROCESS_BRANCH_1()
+#define _STATS_RECORD_PROCESS_BRANCH_N(x)
+#define _STATS_RECORD_CREATE_NODE_GROUP_1()
+#define _STATS_RECORD_CREATE_NODE_GROUP_N(x)
+#define _STATS_RECORD_PROCESS_NODE_GROUP_1()
+#define _STATS_RECORD_PROCESS_NODE_GROUP_N(x)
+#define _STATS_RECORD_SEND_NODE_BRANCH_1()
+#define _STATS_RECORD_SEND_NODE_BRANCH_N(x)
+#define _STATS_RECORD_PROCESS_NODE_BRANCH_1()
+#define _STATS_RECORD_PROCESS_NODE_BRANCH_N(x)
+#endif
 #endif