From e5d531eabf3091af18ca1a331e52b184a67750f7 Mon Sep 17 00:00:00 2001 From: Jonathan Herman Date: Thu, 7 Mar 2013 13:55:32 -0500 Subject: Added num-trials option to gen_exps.py --- gen/generators.py | 27 ++++++++++++++++----------- gen_exps.py | 4 +++- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/gen/generators.py b/gen/generators.py index dd6f1cc..fccc747 100644 --- a/gen/generators.py +++ b/gen/generators.py @@ -186,7 +186,7 @@ class BaseGenerator(object): '''Configure a generated taskset with extra parameters.''' pass - def create_exps(self, out_dir, force): + def create_exps(self, out_dir, force, trials): '''Create experiments for all possible combinations of params in @out_dir. Overwrite existing files if @force is True.''' builder = ColMapBuilder() @@ -199,19 +199,24 @@ class BaseGenerator(object): col_map = builder.build() for dp in DesignPointGenerator(self.params): - dir_leaf = "sched=%s_%s" % (self.name, col_map.encode(dp)) - dir_path = "%s/%s" % (out_dir, dir_leaf.strip('_')) + for trial in xrange(trials): + # Create directory name from relevant parameters + dir_leaf = "sched=%s_%s" % (self.name, col_map.encode(dp)) + dir_leaf = dir_leaf.strip('_') # If there are none + dir_leaf += ("_trial=%s" % trial) if trials > 1 else "" - if os.path.exists(dir_path): - if force: - sh.rmtree(dir_path) - else: - print("Skipping existing experiment: '%s'" % dir_path) - continue + dir_path = "%s/%s" % (out_dir, dir_leaf.strip('_')) + + if os.path.exists(dir_path): + if force: + sh.rmtree(dir_path) + else: + print("Skipping existing experiment: '%s'" % dir_path) + continue - os.mkdir(dir_path) + os.mkdir(dir_path) - self.__create_exp(dp, dir_path) + self.__create_exp(dict(dp), dir_path) def print_help(self): s = str(Template("""Generator $name: diff --git a/gen_exps.py b/gen_exps.py index e4e8187..80ae777 100755 --- a/gen_exps.py +++ b/gen_exps.py @@ -22,6 +22,8 @@ def parse_args(): default=("%s/exps"%os.getcwd())) parser.add_option('-f', '--force', action='store_true', default=False, dest='force', help='overwrite existing data') + parser.add_option('-n', '--num-trials', default=1, type='int', dest='trials', + help='number of task systems for every config') parser.add_option('-l', '--list-generators', dest='list_gens', help='list allowed generators', action='store_true', default=False) @@ -92,7 +94,7 @@ def main(): params = dict(gen_params.items() + global_params.items()) generator = GENERATORS[gen_name](params) - generator.create_exps(opts.out_dir, opts.force) + generator.create_exps(opts.out_dir, opts.force, opts.trials) if __name__ == '__main__': main() -- cgit v1.2.2