diff --git a/analysis/optimizer/gridsearch_tuning_manager.py b/analysis/optimizer/gridsearch_tuning_manager.py index 6a414d7884de0da22dc696b082b1fbd49469d00b..7391506525bdddf3f8afa91c41b1f99218c46272 100755 --- a/analysis/optimizer/gridsearch_tuning_manager.py +++ b/analysis/optimizer/gridsearch_tuning_manager.py @@ -83,11 +83,11 @@ class GridSearchTuningManager(object): ret_para.append(copy.deepcopy(config)) return ret_para - def do_gridsearch(self): + def do_gridsearch(self, num_done): """do the gridsearch on the spaces""" spaces = self.expand_parameters(self._dict_para) self._child_conn.send(len(spaces)) - for space in spaces: + for space in spaces[num_done:]: LOGGER.info('space %s', space) iter_result = {} params = {} diff --git a/analysis/optimizer/optimizer.py b/analysis/optimizer/optimizer.py index 4cc3cd89f9b1a16cb494563d642a382fe3fadde8..231c6f757b4783e5c64d572b8ae081e6a7b1f128 100644 --- a/analysis/optimizer/optimizer.py +++ b/analysis/optimizer/optimizer.py @@ -317,8 +317,11 @@ class Optimizer(multiprocessing.Process): # convert string option into index options = abtuning_manager.get_options_index(options) elif self.engine == 'gridsearch': + num_done = 0 + if self.y_ref is not None: + num_done = len(self.y_ref) gstuning_manager = GridSearchTuningManager(self.knobs, self.child_conn) - options, performance = gstuning_manager.do_gridsearch() + options, performance = gstuning_manager.do_gridsearch(num_done) params, labels = gstuning_manager.get_best_params() # convert string option into index options = gstuning_manager.get_options_index(options) diff --git a/common/tuning/optimizer.go b/common/tuning/optimizer.go index a5ba64ecb3d04e598b6d08e656a2fc5d55bbf288..70824123ad4196b8947c1f7392c6b7e87748f812 100644 --- a/common/tuning/optimizer.go +++ b/common/tuning/optimizer.go @@ -139,7 +139,7 @@ func (o *Optimizer) createOptimizerTask(ch chan *PB.TuningMessage, iters int32, return err } } - if o.Restart && iters <= int32(len(optimizerBody.Xref)) { + if o.Restart && iters <= int32(len(optimizerBody.Xref)) && (engine != "gridsearch") && (engine != "abtest") { return fmt.Errorf("create task failed for client ask iters less than tuning history") } optimizerBody.MaxEval = iters