diff options
| author | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-03-18 13:15:42 -0400 |
|---|---|---|
| committer | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-03-18 13:15:42 -0400 |
| commit | 16dfc8df20c6befeed423217a2e0f5ae59b5a04d (patch) | |
| tree | 722ff18b111f6ab2fc11fffa46e78889bd2d5708 /parse_exps.py | |
| parent | 652a57b5a53e41e585c7e0d10601c807ba08c36f (diff) | |
Use smarter defaults which can handle data from Bjorns scripts.
Diffstat (limited to 'parse_exps.py')
| -rwxr-xr-x | parse_exps.py | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/parse_exps.py b/parse_exps.py index 7dfc9cd..8fcf5c3 100755 --- a/parse_exps.py +++ b/parse_exps.py | |||
| @@ -22,8 +22,6 @@ def parse_args(): | |||
| 22 | # TODO: convert data-dir to proper option, clean 'dest' options | 22 | # TODO: convert data-dir to proper option, clean 'dest' options |
| 23 | parser = OptionParser("usage: %prog [options] [data_dir]...") | 23 | parser = OptionParser("usage: %prog [options] [data_dir]...") |
| 24 | 24 | ||
| 25 | print("default to no params.py") | ||
| 26 | |||
| 27 | parser.add_option('-o', '--out', dest='out', | 25 | parser.add_option('-o', '--out', dest='out', |
| 28 | help='file or directory for data output', default='parse-data') | 26 | help='file or directory for data output', default='parse-data') |
| 29 | parser.add_option('-c', '--clean', action='store_true', default=False, | 27 | parser.add_option('-c', '--clean', action='store_true', default=False, |
| @@ -44,15 +42,15 @@ ExpData = namedtuple('ExpData', ['path', 'params', 'work_dir']) | |||
| 44 | 42 | ||
| 45 | def get_exp_params(data_dir, cm_builder): | 43 | def get_exp_params(data_dir, cm_builder): |
| 46 | param_file = "%s/%s" % (data_dir, conf.DEFAULTS['params_file']) | 44 | param_file = "%s/%s" % (data_dir, conf.DEFAULTS['params_file']) |
| 47 | if not os.path.isfile: | 45 | if os.path.isfile(param_file): |
| 48 | raise Exception("No param file '%s' exists!" % param_file) | 46 | params = load_params(param_file) |
| 49 | |||
| 50 | params = load_params(param_file) | ||
| 51 | 47 | ||
| 52 | # Store parameters in cm_builder, which will track which parameters change | 48 | # Store parameters in cm_builder, which will track which parameters change |
| 53 | # across experiments | 49 | # across experiments |
| 54 | for key, value in params.iteritems(): | 50 | for key, value in params.iteritems(): |
| 55 | cm_builder.try_add(key, value) | 51 | cm_builder.try_add(key, value) |
| 52 | else: | ||
| 53 | params = {} | ||
| 56 | 54 | ||
| 57 | # Cycles must be present for feather-trace measurement parsing | 55 | # Cycles must be present for feather-trace measurement parsing |
| 58 | if conf.PARAMS['cycles'] not in params: | 56 | if conf.PARAMS['cycles'] not in params: |
| @@ -164,16 +162,25 @@ def main(): | |||
| 164 | if opts.force and os.path.exists(opts.out): | 162 | if opts.force and os.path.exists(opts.out): |
| 165 | sh.rmtree(opts.out) | 163 | sh.rmtree(opts.out) |
| 166 | 164 | ||
| 167 | result_table = result_table.reduce() | 165 | reduced_table = result_table.reduce() |
| 168 | 166 | ||
| 169 | sys.stderr.write("Writing result...\n") | 167 | sys.stderr.write("Writing result...\n") |
| 170 | if opts.write_map: | 168 | if opts.write_map: |
| 171 | # Write summarized results into map | 169 | # Write summarized results into map |
| 172 | result_table.write_map(opts.out) | 170 | reduced_table.write_map(opts.out) |
| 173 | else: | 171 | else: |
| 174 | # Write out csv directories for all variable params | 172 | # Write out csv directories for all variable params |
| 175 | dir_map = result_table.to_dir_map() | 173 | dir_map = reduced_table.to_dir_map() |
| 176 | dir_map.write(opts.out) | 174 | |
| 175 | # No csvs to write, assume user meant to print out data | ||
| 176 | if dir_map.is_empty(): | ||
| 177 | sys.stderr.write("Too little data to make csv files.\n") | ||
| 178 | if not opts.verbose: | ||
| 179 | for key, exp in result_table: | ||
| 180 | for e in exp: | ||
| 181 | print(e) | ||
| 182 | else: | ||
| 183 | dir_map.write(opts.out) | ||
| 177 | 184 | ||
| 178 | if __name__ == '__main__': | 185 | if __name__ == '__main__': |
| 179 | main() | 186 | main() |
