virtual destructor for super class
[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     virtual ~ComlibLearner() {}
17     //Configures parameters of the learner. Will be called by the
18     //communication library on every processor after the second
19     //barrier of the communication library.
20     virtual void init() {}
21     
22     //Optimizes a specific strategy. Returns a new optimized strategy
23     virtual Strategy* optimizePattern(Strategy *strat, 
24                                       ComlibGlobalStats &sdata){
25         return NULL;
26     }
27     
28     //Optimizes the communication pattern of a group of strategies
29     //together
30     virtual Strategy** optimizePattern(Strategy **strat, 
31                                        ComlibGlobalStats &sdata){
32         return NULL;
33     }
34 };
35
36 #endif