New version of communication library with learning capabilities. Learning and dynamic...
[charm.git] / src / ck-com / ComlibLearner.h
1 #ifndef COMLIBLEARNER_H
2 #define COMLIBLEARNER_H
3
4 #include "convcomlibstrategy.h"
5
6
7 /* Communication library learner which takes a strategy or a list of
8    strategies as input along with the communication pattern of the
9    objects belonging to those strategies and returns new strategies to
10    replace the input strategies. These new strategies optimize the
11    communication pattern. */
12
13 class ComlibGlobalStats;
14 class ComlibLearner {
15  public:
16     //Configures parameters of the learner. Will be called by the
17     //communication library on every processor after the second
18     //barrier of the communication library.
19     virtual void init() {}
20     
21     //Optimizes a specific strategy. Returns a new optimized strategy
22     virtual Strategy* optimizePattern(Strategy *strat,ComlibGlobalStats &sdata){return NULL;}
23     
24     //Optimizes the communication pattern of a group of strategies
25     //together
26     virtual Strategy** optimizePattern(Strategy **strat, 
27                                            ComlibGlobalStats &sdata){return NULL;}
28 };
29
30 #endif