From e8b4b2a66e33fea87702ac043ed4b9f791a7db8c Mon Sep 17 00:00:00 2001 From: bdemsky Date: Sun, 27 Aug 2017 18:51:45 -0700 Subject: [PATCH] More tuner framework code --- src/Tuner/autotuner.cc | 6 +++++- src/Tuner/autotuner.h | 5 ++++- src/Tuner/searchtuner.cc | 31 +++++++++++++++++++++++++++++++ src/Tuner/searchtuner.h | 37 +++++++++++++++++++++++++++++++++++++ src/csolver.cc | 3 ++- 5 files changed, 79 insertions(+), 3 deletions(-) create mode 100644 src/Tuner/searchtuner.cc create mode 100644 src/Tuner/searchtuner.h diff --git a/src/Tuner/autotuner.cc b/src/Tuner/autotuner.cc index e1868c1..0ebcc2f 100644 --- a/src/Tuner/autotuner.cc +++ b/src/Tuner/autotuner.cc @@ -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() { } diff --git a/src/Tuner/autotuner.h b/src/Tuner/autotuner.h index ca27f40..0b56541 100644 --- a/src/Tuner/autotuner.h +++ b/src/Tuner/autotuner.h @@ -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 solvers; }; #endif diff --git a/src/Tuner/searchtuner.cc b/src/Tuner/searchtuner.cc new file mode 100644 index 0000000..628ec8e --- /dev/null +++ b/src/Tuner/searchtuner.cc @@ -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 index 0000000..2d0facd --- /dev/null +++ b/src/Tuner/searchtuner.h @@ -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 diff --git a/src/csolver.cc b/src/csolver.cc index c83f4b9..eecbaf3 100644 --- a/src/csolver.cc +++ b/src/csolver.cc @@ -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(); } -- 2.34.1