aboutsummaryrefslogtreecommitdiffstats
path: root/gen/generators.py
diff options
context:
space:
mode:
authorJonathan Herman <hermanjl@cs.unc.edu>2013-03-07 13:55:32 -0500
committerJonathan Herman <hermanjl@cs.unc.edu>2013-03-07 13:55:32 -0500
commite5d531eabf3091af18ca1a331e52b184a67750f7 (patch)
treeef7eb5fa66c907f8e7b29d39d405328c9f8932d0 /gen/generators.py
parent6e2b99a0870e467e35c8b4b95aeb1e665dded413 (diff)
Added num-trials option to gen_exps.py
Diffstat (limited to 'gen/generators.py')
-rw-r--r--gen/generators.py27
1 files changed, 16 insertions, 11 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: