aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gen/edf_generators.py22
-rw-r--r--gen/generator.py7
-rwxr-xr-xrun_exps.py2
3 files changed, 19 insertions, 12 deletions
diff --git a/gen/edf_generators.py b/gen/edf_generators.py
index 7a30b4f..0e5cb03 100644
--- a/gen/edf_generators.py
+++ b/gen/edf_generators.py
@@ -75,13 +75,14 @@ class EdfPgmGenerator(gen.Generator):
75 75
76 def __make_options(self): 76 def __make_options(self):
77 '''Return generic EDF options.''' 77 '''Return generic EDF options.'''
78 return [gen.Generator._dist_option('period', ['uni-long'], 78 return [gen.Generator._dist_option('period', ['uni-moderate'],
79 ecrts14.NAMED_PERIODS_US, 79 ecrts14.NAMED_PERIODS_US,
80 'Task period distributions.'), 80 'Task period distributions.'),
81 gen.Generator._dist_option('num_graphs', 'uni-medium', 81 gen.Generator._dist_option('num_graphs', ['uni-medium'],
82 ecrts14.NAMED_NUM_GRAPHS, 82 ecrts14.NAMED_NUM_GRAPHS,
83 'Number of graphs.'), 83 'Number of graphs.'),
84 gen.Generator._dist_option('depth_factor', ['uni-medium'], 84# gen.Generator._dist_option('depth_factor', ['uni-medium'],
85 gen.Generator._dist_option('depth_factor', ['pipeline'],
85 ecrts14.NAMED_HEIGHT_FACTORS, 86 ecrts14.NAMED_HEIGHT_FACTORS,
86 'Depth of graphs.'), 87 'Depth of graphs.'),
87 gen.Generator._dist_option('partitions', ['no_cache', 'parallel', 'cache_aware'], 88 gen.Generator._dist_option('partitions', ['no_cache', 'parallel', 'cache_aware'],
@@ -90,27 +91,26 @@ class EdfPgmGenerator(gen.Generator):
90 gen.Generator._dist_option('node_placement', ['uniform'], 91 gen.Generator._dist_option('node_placement', ['uniform'],
91 ecrts14.NAMED_SHAPES, 92 ecrts14.NAMED_SHAPES,
92 'The node placement of a graph.'), 93 'The node placement of a graph.'),
93 gen.Generator._dist_option('fan_out', ['uniform_3'], 94# gen.Generator._dist_option('fan_out', ['uniform_3'],
95 gen.Generator._dist_option('fan_out', ['none'],
94 ecrts14.NAMED_FAN, 96 ecrts14.NAMED_FAN,
95 'The number of out edges of a node.'), 97 'The number of out edges of a node.'),
96 gen.Generator._dist_option('fan_in_cap', [3], 98 gen.Generator._dist_option('fan_in_cap', [3],
97 {}, 99 {},
98 'The maximum number of in-edges of a node.'), 100 'The maximum number of in-edges of a node.'),
99 gen.Generator._dist_option('edge_distance', ['uniform_3'], 101# gen.Generator._dist_option('edge_distance', ['uniform_3'],
102 gen.Generator._dist_option('edge_distance', ['none'],
100 ecrts14.NAMED_EDGE_HOP, 103 ecrts14.NAMED_EDGE_HOP,
101 'The number of hops for an edge.'), 104 'The number of hops for an edge.'),
102 gen.Generator._dist_option('wss', ['uni-medium'], 105 gen.Generator._dist_option('wss', ['uni-light', 'uni-medium', 'uni-heavy'],
103 ecrts14.NAMED_EDGE_WSS, 106 ecrts14.NAMED_EDGE_WSS,
104 'Working set size.'), 107 'Working set size.'),
105 gen.Generator._dist_option('task_util', ['uni-light'], 108 gen.Generator._dist_option('task_util', ['uni-medium'],
106 NAMED_UTILIZATIONS, 109 NAMED_UTILIZATIONS,
107 'Task utilization.'), 110 'Task utilization.'),
108 gen.Generator._dist_option('polluters', False, 111 gen.Generator._dist_option('polluters', False,
109 {}, 112 {},
110 'Polluters.'), 113 'Polluters.'),
111# gen.Generator._dist_option('release_master', False,
112# {},
113# 'Release master.'),
114 gen.Generator._dist_option('job_splitting', True, 114 gen.Generator._dist_option('job_splitting', True,
115 {}, 115 {},
116 'Job splitting.'), 116 'Job splitting.'),
@@ -120,7 +120,7 @@ class EdfPgmGenerator(gen.Generator):
120 gen.Generator._dist_option('heur_aggressiveness', 0.75, 120 gen.Generator._dist_option('heur_aggressiveness', 0.75,
121 {}, 121 {},
122 'heur_aggressiveness.'), 122 'heur_aggressiveness.'),
123 gen.Generator._dist_option('sys_util', [20.0, 16.0, 12.0, 9.0], 123 gen.Generator._dist_option('sys_util', [18.0, 13.0, 8.0],
124 {}, 124 {},
125 'Task set utilization.')] 125 'Task set utilization.')]
126 126
diff --git a/gen/generator.py b/gen/generator.py
index 89b893e..043124b 100644
--- a/gen/generator.py
+++ b/gen/generator.py
@@ -391,6 +391,9 @@ class Generator(object):
391 created_dirs = [] 391 created_dirs = []
392 tries += 1 392 tries += 1
393 393
394 if tries > 1:
395 print('Retrying...')
396
394 # Generate a task set 397 # Generate a task set
395 ts, graphs, subts = self._create_tasks(dp) 398 ts, graphs, subts = self._create_tasks(dp)
396 dp.tasks = len(ts) 399 dp.tasks = len(ts)
@@ -409,6 +412,8 @@ class Generator(object):
409 for pm in partition_method: 412 for pm in partition_method:
410 dp.partitions = pm 413 dp.partitions = pm
411 # Create directory name from relevant parameters 414 # Create directory name from relevant parameters
415 temp = dp.wss
416 dp.wss = _dp.wss
412 dir_leaf = "sched=%s_cluster=%s_%s" % (self.scheduler, lvl, col_map.encode(dp)) 417 dir_leaf = "sched=%s_cluster=%s_%s" % (self.scheduler, lvl, col_map.encode(dp))
413 dir_leaf = dir_leaf.strip('_') # If there are none 418 dir_leaf = dir_leaf.strip('_') # If there are none
414 dir_leaf += ("_trial=%s" % trial) if trials > 1 else "" 419 dir_leaf += ("_trial=%s" % trial) if trials > 1 else ""
@@ -417,6 +422,8 @@ class Generator(object):
417 422
418 print("Generating for %s" % dir_path) 423 print("Generating for %s" % dir_path)
419 424
425 dp.wss = temp
426
420 if os.path.exists(dir_path): 427 if os.path.exists(dir_path):
421 if force: 428 if force:
422 sh.rmtree(dir_path) 429 sh.rmtree(dir_path)
diff --git a/run_exps.py b/run_exps.py
index 3fff667..8736d19 100755
--- a/run_exps.py
+++ b/run_exps.py
@@ -31,7 +31,7 @@ ExpData = com.recordtype('ExpData', ['name', 'params', 'sched_file', 'out_dir',
31ConfigResult = namedtuple('ConfigResult', ['param', 'wanted', 'actual']) 31ConfigResult = namedtuple('ConfigResult', ['param', 'wanted', 'actual'])
32 32
33'''Maximum times an experiment will be retried''' 33'''Maximum times an experiment will be retried'''
34MAX_RETRY = 5 34MAX_RETRY = 15
35'''Location experiment retry count is stored''' 35'''Location experiment retry count is stored'''
36TRIES_FNAME = ".tries.pkl" 36TRIES_FNAME = ".tries.pkl"
37 37