diff options
-rw-r--r-- | gen/edf_generators.py | 22 | ||||
-rw-r--r-- | gen/generator.py | 7 | ||||
-rwxr-xr-x | run_exps.py | 2 |
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', | |||
31 | ConfigResult = namedtuple('ConfigResult', ['param', 'wanted', 'actual']) | 31 | ConfigResult = namedtuple('ConfigResult', ['param', 'wanted', 'actual']) |
32 | 32 | ||
33 | '''Maximum times an experiment will be retried''' | 33 | '''Maximum times an experiment will be retried''' |
34 | MAX_RETRY = 5 | 34 | MAX_RETRY = 15 |
35 | '''Location experiment retry count is stored''' | 35 | '''Location experiment retry count is stored''' |
36 | TRIES_FNAME = ".tries.pkl" | 36 | TRIES_FNAME = ".tries.pkl" |
37 | 37 | ||