diff options
author | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-02-07 17:53:35 -0500 |
---|---|---|
committer | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-02-07 17:53:35 -0500 |
commit | 063f5bc4b78a8368054c7e11c5fe177aafc4e28d (patch) | |
tree | fdf7c792f68ab310cbd40e9d76aed8d9e2a18b79 /parse/tuple_table.py | |
parent | 39020cf5ae3030bc15035925a0c72eb44eea67b7 (diff) |
Removed measurement logic from DirMap's for simpler processing.
Diffstat (limited to 'parse/tuple_table.py')
-rw-r--r-- | parse/tuple_table.py | 39 |
1 files changed, 32 insertions, 7 deletions
diff --git a/parse/tuple_table.py b/parse/tuple_table.py index 86006d2..a00e8ad 100644 --- a/parse/tuple_table.py +++ b/parse/tuple_table.py | |||
@@ -28,6 +28,8 @@ class ColMap(object): | |||
28 | return str(val).replace("_", "-").replace("=", "-") | 28 | return str(val).replace("_", "-").replace("=", "-") |
29 | vals = [] | 29 | vals = [] |
30 | for key in self.col_list: | 30 | for key in self.col_list: |
31 | if key not in kv: | ||
32 | continue | ||
31 | k, v = escape(key), escape(kv[key]) | 33 | k, v = escape(key), escape(kv[key]) |
32 | vals += ["%s=%s" % (k, v)] | 34 | vals += ["%s=%s" % (k, v)] |
33 | return "_".join(vals) | 35 | return "_".join(vals) |
@@ -116,8 +118,30 @@ class TupleTable(object): | |||
116 | with open(out_map, 'wc') as map_file: | 118 | with open(out_map, 'wc') as map_file: |
117 | pprint(result,stream=map_file, width=20) | 119 | pprint(result,stream=map_file, width=20) |
118 | 120 | ||
119 | def write_csvs(self, out_dir): | 121 | |
120 | dir_map = DirMap(out_dir) | 122 | def __add_to_dirmap(self, dir_map, variable, kv, point): |
123 | value = kv.pop(variable) | ||
124 | |||
125 | for stat in point.get_stats(): | ||
126 | summary = point[stat] | ||
127 | |||
128 | for summary_type in Type: | ||
129 | measurement = summary[summary_type] | ||
130 | |||
131 | for base_type in Type: | ||
132 | if not base_type in measurement: | ||
133 | continue | ||
134 | # Ex: release/num_tasks/measured-max/avg/x=5.csv | ||
135 | leaf = self.col_map.get_encoding(kv) + ".csv" | ||
136 | path = [ stat, variable, "taskset-" + base_type, summary_type, leaf ] | ||
137 | result = measurement[base_type] | ||
138 | |||
139 | dir_map.add_value(path, (value, result)) | ||
140 | |||
141 | kv[variable] = value | ||
142 | |||
143 | def to_dir_map(self): | ||
144 | dir_map = DirMap() | ||
121 | 145 | ||
122 | for key, point in self.table.iteritems(): | 146 | for key, point in self.table.iteritems(): |
123 | kv = self.col_map.get_map(key) | 147 | kv = self.col_map.get_map(key) |
@@ -128,12 +152,13 @@ class TupleTable(object): | |||
128 | try: | 152 | try: |
129 | float(val) | 153 | float(val) |
130 | except: | 154 | except: |
131 | # Only vary numbers. Otherwise, just have seperate lines | 155 | # Only vary numbers. Otherwise, just have seperate files |
132 | continue | 156 | continue |
133 | 157 | ||
134 | kv.pop(col) | 158 | self.__add_to_dirmap(dir_map, col, kv, point) |
135 | dir_map.add_point(col, val, kv, point) | ||
136 | kv[col] = val | ||
137 | 159 | ||
138 | dir_map.reduce() | 160 | dir_map.reduce() |
139 | dir_map.write() | 161 | return dir_map |
162 | |||
163 | def from_dir_map(dir_map): | ||
164 | pass | ||