A tweak in order to disable compiler optimization when calibrating the loop consecuti...
authorChao Mei <chaomei2@illinois.edu>
Sat, 21 Jan 2012 22:55:48 +0000 (16:55 -0600)
committerChao Mei <chaomei2@illinois.edu>
Sat, 21 Jan 2012 22:55:48 +0000 (16:55 -0600)
example/simpleLoopBench/hello.C

index b8a803550afc0c54cc7a2c3011e22d00c72e9503..93122483afa78a05983d11b73e2d954ceb84f93c 100644 (file)
@@ -86,8 +86,9 @@ Main::Main(CkArgMsg* m) {
                endtime = CmiWallTimer();
                CkPrintf("Calibration %d: the loop takes %.3f us with result %d\n", i+1,  (endtime-starttime)*1e6, result);
        }
                endtime = CmiWallTimer();
                CkPrintf("Calibration %d: the loop takes %.3f us with result %d\n", i+1,  (endtime-starttime)*1e6, result);
        }
+       int results[5];
        starttime = CmiWallTimer();
        starttime = CmiWallTimer();
-       for(int i=0; i<5; i++) work(0, loopTimes, &result);
+       for(int i=0; i<5; i++) work(0, loopTimes, results+i);
        endtime = CmiWallTimer();
        double avgtime = (endtime-starttime)*1e6/5; //in the unit of us
        CkPrintf("Calibration: avg time %.3f us of 5 consecutive runs, so a 100us-loop will iterate %d times\n", avgtime, (int)(loopTimes*100.0/avgtime));
        endtime = CmiWallTimer();
        double avgtime = (endtime-starttime)*1e6/5; //in the unit of us
        CkPrintf("Calibration: avg time %.3f us of 5 consecutive runs, so a 100us-loop will iterate %d times\n", avgtime, (int)(loopTimes*100.0/avgtime));