Used astyle --style=kr formatted source codes.
[charm.git] / examples / charm++ / nodeHelper / simpleLoopBench / hello.h
1 #ifndef _HELLO_H
2 #define _HELLO_H
3
4 #include "charm++.h"
5 #include "NodeHelperAPI.h"
6 #include "hello.decl.h"
7 #include <assert.h>
8
9 class Main : public Chare {
10 private:
11         int numElemFinished; //record the number of test instances finished in a timestep
12         double timestamp;
13         int mainStep; //the global counter of timesteps
14         double *mainTimes; //record each timestep from test initiation to test finish (i.e. from the point of main)
15     
16     int curTestMode; //0: nodeHelper; 1: OpenMP
17
18 public:
19     Main(CkArgMsg* m) ;
20     void done(void);
21         void exitTest();
22     void doTests(CkQdMsg *msg);
23     void processCommandLine(int argc,char ** argv);
24 };
25
26 class TestInstance : public CBase_TestInstance {
27         int hasTest; //used for reporting statistics
28         
29     double *allTimes; //record time taken for each timestep
30         int *allResults; //record the result of each timestep
31         
32 public:
33     TestInstance();
34     ~TestInstance() {
35                 delete [] allTimes;
36                 delete [] allResults;
37         }
38     TestInstance(CkMigrateMessage *m) {}
39     void doTest(int curstep, int curTestMode);
40         void reportSts();
41 };
42
43 class cyclicMap : public CkArrayMap {
44 public:
45     int procNum(int, const CkArrayIndex &idx) {
46         int index = *(int *)idx.data();
47         int nid = (index/CkMyNodeSize())%CkNumNodes();
48         int rid = index%CkMyNodeSize();
49         return CkNodeFirst(nid)+rid;
50     }
51 };
52
53 #endif