Renaming GAMMA to GAMMA_MEM for the sp compilers.
[charm.git] / src / ck-com / AAPLearner.h
1
2 #ifndef AAPLEARNER_H
3 #define AAPLEARNER_H
4
5 #include "comlib.h"
6 #include "ComlibManager.h"
7 #include "ComlibLearner.h"
8
9 #define ALPHA       1e-5    //Total alpha overhead
10 #define ALPHA_NIC1  9e-6  //NIC alpha for short messages
11 #define ALPHA_NIC2  6e-6  //NIC alpha
12
13 #define ALPHA_CHARM 2e-6  //Charm++ processing after message has been received
14                              //Includes malloc and scheduling overheads
15
16 #define GAMMA_NIC   2.6e-9   //DMA bandwidth to copy data into NIC memory
17 #define BETA        4e-9   //Network bandwidth
18 #define GAMMA_MEM       9e-10     //Memory bandwidth (copied twice)
19
20 #define min(x,y) ((x < y) ? x : y)
21
22 inline double min4(double x, double y, double a, double b) {
23     double x1 = min(x,y);
24     double a1 = min(a,b);
25     
26     return min(x1,a1);
27
28
29 class AAPLearner : public ComlibLearner {
30     double alpha, beta;
31
32     double computeDirect(double P, double m, double d);
33     double computeMesh(double P, double m, double d);
34     double computeHypercube(double P, double m, double d);
35     double computeGrid(double P, double m, double d);
36
37  public:
38     AAPLearner();    
39
40     void init();
41     Strategy* optimizePattern(Strategy* , ComlibGlobalStats &);
42     
43     Strategy ** optimizePattern(Strategy** , ComlibGlobalStats &) {
44         CkAbort("Not implemented\n");
45         return NULL;
46     }
47 };
48
49
50 #endif