diff options
-rw-r--r-- | gen/generators.py | 27 | ||||
-rwxr-xr-x | 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): | |||
186 | '''Configure a generated taskset with extra parameters.''' | 186 | '''Configure a generated taskset with extra parameters.''' |
187 | pass | 187 | pass |
188 | 188 | ||
189 | def create_exps(self, out_dir, force): | 189 | def create_exps(self, out_dir, force, trials): |
190 | '''Create experiments for all possible combinations of params in | 190 | '''Create experiments for all possible combinations of params in |
191 | @out_dir. Overwrite existing files if @force is True.''' | 191 | @out_dir. Overwrite existing files if @force is True.''' |
192 | builder = ColMapBuilder() | 192 | builder = ColMapBuilder() |
@@ -199,19 +199,24 @@ class BaseGenerator(object): | |||
199 | col_map = builder.build() | 199 | col_map = builder.build() |
200 | 200 | ||
201 | for dp in DesignPointGenerator(self.params): | 201 | for dp in DesignPointGenerator(self.params): |
202 | dir_leaf = "sched=%s_%s" % (self.name, col_map.encode(dp)) | 202 | for trial in xrange(trials): |
203 | dir_path = "%s/%s" % (out_dir, dir_leaf.strip('_')) | 203 | # Create directory name from relevant parameters |
204 | dir_leaf = "sched=%s_%s" % (self.name, col_map.encode(dp)) | ||
205 | dir_leaf = dir_leaf.strip('_') # If there are none | ||
206 | dir_leaf += ("_trial=%s" % trial) if trials > 1 else "" | ||
204 | 207 | ||
205 | if os.path.exists(dir_path): | 208 | dir_path = "%s/%s" % (out_dir, dir_leaf.strip('_')) |
206 | if force: | 209 | |
207 | sh.rmtree(dir_path) | 210 | if os.path.exists(dir_path): |
208 | else: | 211 | if force: |
209 | print("Skipping existing experiment: '%s'" % dir_path) | 212 | sh.rmtree(dir_path) |
210 | continue | 213 | else: |
214 | print("Skipping existing experiment: '%s'" % dir_path) | ||
215 | continue | ||
211 | 216 | ||
212 | os.mkdir(dir_path) | 217 | os.mkdir(dir_path) |
213 | 218 | ||
214 | self.__create_exp(dp, dir_path) | 219 | self.__create_exp(dict(dp), dir_path) |
215 | 220 | ||
216 | def print_help(self): | 221 | def print_help(self): |
217 | s = str(Template("""Generator $name: | 222 | 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(): | |||
22 | default=("%s/exps"%os.getcwd())) | 22 | default=("%s/exps"%os.getcwd())) |
23 | parser.add_option('-f', '--force', action='store_true', default=False, | 23 | parser.add_option('-f', '--force', action='store_true', default=False, |
24 | dest='force', help='overwrite existing data') | 24 | dest='force', help='overwrite existing data') |
25 | parser.add_option('-n', '--num-trials', default=1, type='int', dest='trials', | ||
26 | help='number of task systems for every config') | ||
25 | parser.add_option('-l', '--list-generators', dest='list_gens', | 27 | parser.add_option('-l', '--list-generators', dest='list_gens', |
26 | help='list allowed generators', action='store_true', | 28 | help='list allowed generators', action='store_true', |
27 | default=False) | 29 | default=False) |
@@ -92,7 +94,7 @@ def main(): | |||
92 | params = dict(gen_params.items() + global_params.items()) | 94 | params = dict(gen_params.items() + global_params.items()) |
93 | generator = GENERATORS[gen_name](params) | 95 | generator = GENERATORS[gen_name](params) |
94 | 96 | ||
95 | generator.create_exps(opts.out_dir, opts.force) | 97 | generator.create_exps(opts.out_dir, opts.force, opts.trials) |
96 | 98 | ||
97 | if __name__ == '__main__': | 99 | if __name__ == '__main__': |
98 | main() | 100 | main() |