examples/charm++: Always use CkWallTimer, not CmiWallTimer (tested)
[charm.git] / examples / charm++ / AllReduce / bench / AllReduce.C
1 #include <stdio.h>
2 #include "AllReduce.decl.h"
3 #include <math.h>
4
5
6 /*readonly*/ CProxy_main mainProxy;
7 /*readonly*/ int units;
8 /*readonly*/ int allredSize;
9 #include "AllReduce.h"
10
11 /*mainchare*/
12
13 main::main(CkArgMsg* m)
14   {
15     //Process command-line arguments
16     //Start the computation
17
18     mainProxy = thishandle;
19     if(m->argc<2)
20       {
21               CkPrintf("Needs number of array elements\n");
22         CkExit();
23       }
24     units=atoi(m->argv[1]);
25     // 4 MB size
26     allredSize= 4194304; //atoi(m->argv[2]);
27     baseSize = 262144;
28     currentSize = baseSize;
29     sizeInd = 0;
30     numItr = 10;
31     sizesNo = 5;
32     timeForEach = new double[sizesNo];
33     iterNo = 0;
34     for(int i=0; i<sizesNo; i++)
35             timeForEach[i] = 0.0;
36     arr = CProxy_AllReduce::ckNew(thisProxy, units);
37
38     CkPrintf("AllReduce for %d pes on %d units for %d size\n",
39              CkNumPes(),units,allredSize);
40
41     arr.init();
42     startTime = CkWallTimer();
43     arr.dowork(baseSize);
44   }
45
46 #include "AllReduce.def.h"