config takes fpfactor to map fp to time.
authorGengbin Zheng <gzheng@illinois.edu>
Thu, 7 Oct 2004 08:19:33 +0000 (08:19 +0000)
committerGengbin Zheng <gzheng@illinois.edu>
Thu, 7 Oct 2004 08:19:33 +0000 (08:19 +0000)
src/langs/bluegene/bigsim_init.C
src/langs/bluegene/blue.C
src/langs/bluegene/blue_impl.h

index 24d6b274eef2d2c26541d42f223c156435cefa5d..839fc1958508535bf88b81f1f3a5f2d8adcfda3a 100644 (file)
@@ -170,6 +170,10 @@ int BGMach::read(char *file)
       cpufactor = atof(parameterValue);
       continue;
     }
+    if (!strcmp(parameterName, "fpfactor")) {
+      fpfactor = atof(parameterValue);
+      continue;
+    }
     if (!strcmp(parameterName, "log")) {
       if (!strcmp(parameterValue, "yes"))
         genTimeLog = 1;
index 46e5b75a1828f449d1b3db59f4456a9c44f08607..eeaf22b5623588a97fe4e05a0d747a6ed8022114 100644 (file)
 
 #define  DEBUGF(x)      //CmiPrintf x;
 
-#ifdef CMK_ORIGIN2000
-extern "C" int start_counters(int e0, int e1);
-extern "C" int read_counters(int e0, long long *c0, int e1, long long *c1);
-inline double Count2Time(long long c) { return c*5.e-7; }
-#elif CMK_HAS_COUNTER_PAPI
-#include <papi.h>
-int papiEvents[2] = { PAPI_TOT_CYC, PAPI_FP_INS };
-long_long papiValues[2];
-inline double Count2Time(long long c) { return c*5.e-7; }
-#endif
-
 /* node level variables */
 CpvDeclare(nodeInfo*, nodeinfo);               /* represent a bluegene node */
 
@@ -61,6 +50,17 @@ static int bgstats_flag = 0;         // flag print stats at end of simulation
 // for debugging log
 FILE *bgDebugLog;                      // for debugging
 
+#ifdef CMK_ORIGIN2000
+extern "C" int start_counters(int e0, int e1);
+extern "C" int read_counters(int e0, long long *c0, int e1, long long *c1);
+inline double Count2Time(long long c) { return c*5.e-7; }
+#elif CMK_HAS_COUNTER_PAPI
+#include <papi.h>
+int papiEvents[2] = { PAPI_TOT_CYC, PAPI_FP_INS };
+long_long papiValues[2];
+inline double Count2Time(long long c) { return c*cva(bgMach).fpfactor; }
+#endif
+
 
 /****************************************************************************
      little utility functions
@@ -1043,6 +1043,7 @@ CmiStartFn bgMain(int argc, char **argv)
     CmiPrintf("BG info> Network type: %s.\n", cva(bgMach).network->name());
     cva(bgMach).network->print();
     CmiPrintf("BG info> cpufactor is %f.\n", cva(bgMach).cpufactor);
+    CmiPrintf("BG info> floating point factor is %f.\n", cva(bgMach).fpfactor);
     if (cva(bgMach).stacksize)
       CmiPrintf("BG info> BG stack size: %d bytes. \n", cva(bgMach).stacksize);
     if (cva(bgMach).timingMethod == BG_ELAPSE) 
index 151e400d225172b3fce35ab98b6b775e6e2a0055..c864b4441940d3463f6ef742fe730f1dc2b04cd9 100644 (file)
@@ -25,8 +25,9 @@ public:
   int x, y, z;         /* size of bluegene nodes in cube */
   int numCth, numWth;           /* number of threads */
   int stacksize;               /* bg thread stack size */
-  int timingMethod;            /* timing method */
-  double cpufactor;            /* cpu factor to multiply to the time */
+  int timingMethod;       /* timing method */
+  double cpufactor;       /* cpu factor to multiply to the time for walltime */
+  double fpfactor;     /* fp time factor */
   char *traceroot;             /* bgTraceFile prefix */
   BigSimNetwork *network;      /* network setup */
 public:
@@ -35,7 +36,7 @@ public:
   void nullify() { 
        x=y=z=0; 
        numCth=numWth=0; stacksize=0; 
-       timingMethod = BG_ELAPSE; cpufactor=1.0; 
+       timingMethod = BG_ELAPSE; cpufactor=1.0; fpfactor=0.0;
        traceroot=NULL; 
        network=new BlueGeneNetwork;
   }
@@ -50,7 +51,7 @@ public:
   int read(char *file);
   void pup(PUP::er &p) { 
         p|x; p|y; p|z; p|numCth; p|numWth; 
-       p|stacksize; p|timingMethod;
+       p|stacksize; p|timingMethod; 
        }
 };