From 865542e6c2d9582a8ab9ba3d52849df747fba15d Mon Sep 17 00:00:00 2001 From: bdemsky Date: Wed, 17 Oct 2018 11:38:02 -0700 Subject: [PATCH] Save all data generated by autotuner pass --- src/Tuner/multituner.cc | 16 ++++++++++++++++ src/Tuner/multituner.h | 3 ++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/Tuner/multituner.cc b/src/Tuner/multituner.cc index f28e781..3dcbacf 100644 --- a/src/Tuner/multituner.cc +++ b/src/Tuner/multituner.cc @@ -72,6 +72,7 @@ void MultiTuner::printData() { void MultiTuner::addTuner(SearchTuner *tuner) { TunerRecord *t = new TunerRecord(tuner); tuners.push(t); + t->tunernumber = allTuners.getSize(); allTuners.push(t); } @@ -90,6 +91,19 @@ long long MultiTuner::evaluate(Problem *problem, TunerRecord *tuner) { } } + { + snprintf(buffer, sizeof(buffer), "tunernum%u", execnum); + + ofstream myfile; + myfile.open (buffer, ios::out); + + + if (myfile.is_open()) { + myfile << tuner->tunernumber << endl; + myfile.close(); + } + } + //Write out the tuner snprintf(buffer, sizeof(buffer), "tuner%u", execnum); tuner->getTuner()->serialize(buffer); @@ -136,6 +150,7 @@ void MultiTuner::tuneComp() { for (uint i = 0; i < tSize; i++) { SearchTuner *tmpTuner = mutateTuner(tunerV->get(i)->getTuner(), b); TunerRecord *tmp = new TunerRecord(tmpTuner); + tmp->tunernumber = allTuners.getSize(); allTuners.push(tmp); tunerV->push(tmp); } @@ -298,6 +313,7 @@ TunerRecord *MultiTuner::tune(TunerRecord *tuner) { for (uint i = 0; i < budget; i++) { SearchTuner *tmpTuner = mutateTuner(oldTuner->getTuner(), i); TunerRecord *newTuner = oldTuner->changeTuner(tmpTuner); + newTuner->tunernumber = allTuners.getSize(); allTuners.push(newTuner); double newScore = evaluateAll(newTuner); newTuner->tuner->printUsed(); diff --git a/src/Tuner/multituner.h b/src/Tuner/multituner.h index 8ee0170..73201dd 100644 --- a/src/Tuner/multituner.h +++ b/src/Tuner/multituner.h @@ -19,7 +19,7 @@ private: class TunerRecord { public: - TunerRecord(SearchTuner *_tuner) : tuner(_tuner) {} + TunerRecord(SearchTuner *_tuner) : tuner(_tuner), tunernumber(-1) {} SearchTuner *getTuner() {return tuner;} TunerRecord *changeTuner(SearchTuner *_newtuner); void updateTuner(SearchTuner *_newtuner) {tuner = _newtuner;} @@ -29,6 +29,7 @@ private: SearchTuner *tuner; Vector problems; Hashtable timetaken; + int tunernumber; friend class MultiTuner; friend void clearVector(Vector *tunerV); }; -- 2.34.1