projects
/
satune.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix tuner issues
[satune.git]
/
src
/
Tuner
/
multituner.cc
diff --git
a/src/Tuner/multituner.cc
b/src/Tuner/multituner.cc
index a30b482c880747820ffaabe8b5e32c960db1dc23..03bfeec88b363fc68294453b7c05660ceb680fc4 100644
(file)
--- a/
src/Tuner/multituner.cc
+++ b/
src/Tuner/multituner.cc
@@
-59,18
+59,19
@@
void MultiTuner::addTuner(SearchTuner *tuner) {
allTuners.push(t);
}
allTuners.push(t);
}
-long long MultiTuner::evaluate(Problem *problem,
SearchTuner
*tuner) {
+long long MultiTuner::evaluate(Problem *problem,
TunerRecord
*tuner) {
char buffer[512];
//Write out the tuner
snprintf(buffer, sizeof(buffer), "tuner%u", execnum);
char buffer[512];
//Write out the tuner
snprintf(buffer, sizeof(buffer), "tuner%u", execnum);
- tuner->serialize(buffer);
+ tuner->
getTuner()->
serialize(buffer);
//Do run
//Do run
- snprintf(buffer, sizeof(buffer), "deserializerun %s %u tuner%u result%s%u > log%u", problem->getProblem(), timeout, execnum, problem->getProblem(), execnum, execnum);
+ snprintf(buffer, sizeof(buffer), "
./run.sh
deserializerun %s %u tuner%u result%s%u > log%u", problem->getProblem(), timeout, execnum, problem->getProblem(), execnum, execnum);
int status = system(buffer);
long long metric = -1;
int sat = IS_INDETER;
int status = system(buffer);
long long metric = -1;
int sat = IS_INDETER;
+
if (status == 0) {
//Read data in from results file
snprintf(buffer, sizeof(buffer), "result%s%u", problem->getProblem(), execnum);
if (status == 0) {
//Read data in from results file
snprintf(buffer, sizeof(buffer), "result%s%u", problem->getProblem(), execnum);
@@
-84,6
+85,12
@@
long long MultiTuner::evaluate(Problem *problem, SearchTuner *tuner) {
myfile >> sat;
myfile.close();
}
myfile >> sat;
myfile.close();
}
+
+ snprintf(buffer, sizeof(buffer), "tuner%uused", execnum);
+ SearchTuner *usedtuner = new SearchTuner(buffer);
+ delete tuner->getTuner();
+ tuner->updateTuner(usedtuner);
+
}
//Increment execution count
execnum++;
}
//Increment execution count
execnum++;
@@
-113,7
+120,7
@@
void MultiTuner::tuneComp() {
TunerRecord *tuner = tunerV->get(j);
long long metric = tuner->getTime(problem);
if (metric == -1) {
TunerRecord *tuner = tunerV->get(j);
long long metric = tuner->getTime(problem);
if (metric == -1) {
- metric = evaluate(problem, tuner
->getTuner()
);
+ metric = evaluate(problem, tuner);
if (metric != -1)
tuner->setTime(problem, metric);
}
if (metric != -1)
tuner->setTime(problem, metric);
}
@@
-173,7
+180,7
@@
void MultiTuner::mapProblemsToTuners(Vector<TunerRecord *> *tunerV) {
TunerRecord *tuner = tunerV->get(j);
long long metric = tuner->getTime(problem);
if (metric == -1) {
TunerRecord *tuner = tunerV->get(j);
long long metric = tuner->getTime(problem);
if (metric == -1) {
- metric = evaluate(problem, tuner
->getTuner()
);
+ metric = evaluate(problem, tuner);
if (metric != -1)
tuner->setTime(problem, metric);
}
if (metric != -1)
tuner->setTime(problem, metric);
}
@@
-227,7
+234,7
@@
double MultiTuner::evaluateAll(TunerRecord *tuner) {
Problem *problem = tuner->problems.get(i);
long long metric = tuner->getTime(problem);
if (metric == -1) {
Problem *problem = tuner->problems.get(i);
long long metric = tuner->getTime(problem);
if (metric == -1) {
- metric = evaluate(problem, tuner
->getTuner()
);
+ metric = evaluate(problem, tuner);
if (metric != -1)
tuner->setTime(problem, metric);
}
if (metric != -1)
tuner->setTime(problem, metric);
}