More tuner framework code
authorbdemsky <bdemsky@uci.edu>
Mon, 28 Aug 2017 01:51:45 +0000 (18:51 -0700)
committerbdemsky <bdemsky@uci.edu>
Mon, 28 Aug 2017 01:51:45 +0000 (18:51 -0700)
src/Tuner/autotuner.cc
src/Tuner/autotuner.h
src/Tuner/searchtuner.cc [new file with mode: 0644]
src/Tuner/searchtuner.h [new file with mode: 0644]
src/csolver.cc

index e1868c17e61135306e402f4e75d61ce87a095033..0ebcc2f51bfd16d91896a77b8e5533f1b336024b 100644 (file)
@@ -1,7 +1,11 @@
 #include "autotuner.h"
 #include "csolver.h"
 
-void AutoTuner::tune(CSolver *base) {
+void AutoTuner::addProblem(CSolver *solver) {
+       solvers.push(solver);
+}
+
+void AutoTuner::tune() {
        
        
 }
index ca27f407a8abac968c3cff1be271af62114be92a..0b565410f9fa90003254bce3f9f907aae7ce0f1f 100644 (file)
@@ -1,12 +1,15 @@
 #ifndef AUTOTUNER_H
 #define AUTOTUNER_H
 #include "classlist.h"
+#include "structs.h"
 
 class AutoTuner {
  public:
        AutoTuner();
-       void tune(CSolver *solver);
+       void addProblem(CSolver *solver);
+       void tune();
        MEMALLOC;
  private:
+       Vector<CSolver *> solvers;
 };
 #endif
diff --git a/src/Tuner/searchtuner.cc b/src/Tuner/searchtuner.cc
new file mode 100644 (file)
index 0000000..628ec8e
--- /dev/null
@@ -0,0 +1,31 @@
+#include "searchtuner.h"
+
+SearchTuner::SearchTuner() {
+}
+
+int SearchTuner::getTunable(TunableParam param, TunableDesc *descriptor) {
+       return 0;
+}
+
+int SearchTuner::getVarTunable(VarType vartype, TunableParam param, TunableDesc *descriptor) {
+       return 0;
+}
+
+TunableParameter::TunableParameter(VarType _type, TunableParam _param) :
+       hasVar(true),
+       type(_type),
+       param(_param) {
+}
+
+TunableParameter::TunableParameter(TunableParam _param) :
+       hasVar(false),
+       type(0),
+       param(_param) {
+}
+
+TunableDecision::TunableDecision(int _low, int _high, int _default, int _selection) :
+       lowValue(_low),
+       highValue(_high),
+       defaultValue(_default),
+       selectedValue(_selection) {
+}
diff --git a/src/Tuner/searchtuner.h b/src/Tuner/searchtuner.h
new file mode 100644 (file)
index 0000000..2d0facd
--- /dev/null
@@ -0,0 +1,37 @@
+#ifndef SEARCHTUNER_H
+#define SEARCHTUNER_H
+#include "classlist.h"
+#include "tunable.h"
+
+class SearchTuner : public Tuner {
+ public:
+       SearchTuner();
+       int getTunable(TunableParam param, TunableDesc *descriptor);
+       int getVarTunable(VarType vartype, TunableParam param, TunableDesc *descriptor);
+       MEMALLOC;
+ private:
+};
+
+class TunableParameter {
+ public:
+       TunableParameter(VarType type, TunableParam param);     
+       TunableParameter(TunableParam param);
+       MEMALLOC;
+ private:
+       bool hasVar;
+       VarType type;
+       TunableParam param;
+};
+
+class TunableDecision {
+ public:
+       TunableDecision(int _low, int _high, int _default, int _selection);
+       MEMALLOC;
+ private:
+       int lowValue;
+       int highValue;
+       int defaultValue;
+       int selectedValue;
+};
+
+#endif
index c83f4b942644bbd3c063e848688265e3adf2eae7..eecbaf3267379f38df5d6e2a4f14de511a686bd1 100644 (file)
@@ -245,5 +245,6 @@ long long CSolver::getSolveTime() { return satEncoder->getSolveTime(); }
 
 void CSolver::autoTune() {
        AutoTuner * autotuner=new AutoTuner();
-       autotuner->tune(this);
+       autotuner->addProblem(this);
+       autotuner->tune();
 }