From: bdemsky Date: Wed, 31 Oct 2018 20:38:48 +0000 (-0700) Subject: memoize timeouts X-Git-Url: http://plrg.eecs.uci.edu/git/?p=satune.git;a=commitdiff_plain;h=e1360c75a71486a0de8c1b30a2a8cd2877902416;hp=2791ea968b078efd8b72391544a9b51c285a276e memoize timeouts --- diff --git a/src/Tuner/multituner.cc b/src/Tuner/multituner.cc index 5ea9800..a86b90f 100644 --- a/src/Tuner/multituner.cc +++ b/src/Tuner/multituner.cc @@ -171,7 +171,7 @@ void MultiTuner::readData(uint numRuns) { snprintf(buffer, sizeof(buffer), "result%u", i); myfile.open (buffer, ios::in); - + if (myfile.is_open()) { myfile >> metric; @@ -306,8 +306,10 @@ void MultiTuner::tuneComp() { model_print("*****************************\n"); if (metric != -1) tuner->setTime(problem, metric); + else + tuner->setTime(problem, -2); } - if (metric != -1) { + if (metric >= 0) { uint k = 0; for (; k < places.getSize(); k++) { if (metric < places.get(k)->getTime(problem)) @@ -374,9 +376,11 @@ void MultiTuner::mapProblemsToTuners(Vector *tunerV) { metric = evaluate(problem, tuner); if (metric != -1) tuner->setTime(problem, metric); + else + tuner->setTime(problem, -2); } - if ((bestTuner == NULL && metric != -1) || - (metric < bestscore && metric != -1)) { + if ((bestTuner == NULL && metric >= 0) || + (metric < bestscore && metric >= 0)) { bestTuner = tuner; bestscore = metric; } @@ -428,9 +432,13 @@ double MultiTuner::evaluateAll(TunerRecord *tuner) { metric = evaluate(problem, tuner); if (metric != -1) tuner->setTime(problem, metric); + else + tuner->setTime(problem, -2); } double score = metric; + if (metric < 0) + score = timeout; product *= score; } return pow(product, 1 / ((double)tuner->problems.getSize())); diff --git a/src/Tuner/searchtuner.cc b/src/Tuner/searchtuner.cc index b010cd5..0639281 100644 --- a/src/Tuner/searchtuner.cc +++ b/src/Tuner/searchtuner.cc @@ -99,7 +99,7 @@ SearchTuner::SearchTuner(const char *filename) { usedSettings.add(setting); } myfile.close(); - } else{ + } else { model_print("Warning: Tuner %s couldn't be loaded ... Using default tuner instead ....\n", filename); } } diff --git a/src/Tuner/staticautotuner.cc b/src/Tuner/staticautotuner.cc index 1d42932..d4c9109 100644 --- a/src/Tuner/staticautotuner.cc +++ b/src/Tuner/staticautotuner.cc @@ -13,9 +13,9 @@ StaticAutoTuner::StaticAutoTuner(uint _budget) : AutoTuner(_budget) { StaticSearchTuner *StaticAutoTuner::mutateTuner(StaticSearchTuner *oldTuner) { StaticSearchTuner *newTuner = oldTuner->copyUsed(); result = newTuner->nextStaticTuner(); - if( result == EXIT_FAILURE) { + if ( result == EXIT_FAILURE) { return newTuner; - }else { + } else { delete newTuner; return NULL; } @@ -26,7 +26,7 @@ void StaticAutoTuner::tune() { evaluateAll(oldTuner); while (true) { StaticSearchTuner *newTuner = mutateTuner(oldTuner); - if (newTuner == NULL){ + if (newTuner == NULL) { break; } double newScore = evaluateAll(newTuner);