Changes to the advancedlb text and adding the location of an example
[charm.git] / examples / charm++ / topology / matmul2d / matmul2d.h
1 // Read-only global variables
2
3 /*readonly*/ CProxy_Main mainProxy;
4 /*readonly*/ CProxy_Compute compute;
5
6 /*readonly*/ int N;
7 /*readonly*/ int K;
8 /*readonly*/ int num_chares_per_dim;
9 /*readonly*/ int T;
10
11 static unsigned long next = 1;
12
13 int myrand(int numpes) {
14   next = next * 1103515245 + 12345;
15   return((unsigned)(next/65536) % numpes);
16 }
17
18 #define USE_TOPOMAP     0
19 #define USE_RRMAP       0
20 #define USE_RNDMAP      0
21
22
23 #define UNROLL_DEPTH 3
24 #define MAGIC_A 1.0
25 #define MAGIC_B 4.0
26
27 class Main : public CBase_Main {
28   
29   double startTime;
30   double endTime;
31   
32   public:    
33   Main(CkArgMsg* m);
34   void done();
35 };
36
37 class Compute: public CBase_Compute {
38   int step;
39   float *A[2], *B[2], *C;
40
41   int row, col;
42   int remaining;
43   int whichLocal;
44   int iteration;
45   //int comps;
46
47
48   public:
49   Compute();
50   Compute(CkMigrateMessage* m);
51   ~Compute();
52
53   void start();
54   void compute();
55   void recvBlockA(float *block, int size, int whichBuf);
56   void recvBlockB(float *block, int size, int whichBuf);
57   void resumeFromBarrier();
58
59 };
60
61 class ComputeMap : public CBase_ComputeMap {
62   
63   int arrayDimX, arrayDimY;
64
65   int *map;
66
67   public:
68   ComputeMap(int, int);
69   ~ComputeMap(){delete []map;}
70   int procNum(int, const CkArrayIndex &idx);
71
72 };