diff options
author | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-02-08 11:54:49 -0500 |
---|---|---|
committer | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-02-08 11:54:49 -0500 |
commit | d312e270ed5c2926c8651291a4026062213876f8 (patch) | |
tree | 94992d8562332ae84be9f2b5aba169f0e287ea51 /parse_exps.py | |
parent | 2b416f696a50f4ae264d5aec8c78fa7686cc7927 (diff) |
ColMaps are now created by ColMapBuilders which order columns by their number
of distinct values.
Diffstat (limited to 'parse_exps.py')
-rwxr-xr-x | parse_exps.py | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/parse_exps.py b/parse_exps.py index 5228cbe..1bd3d48 100755 --- a/parse_exps.py +++ b/parse_exps.py | |||
@@ -11,9 +11,9 @@ import sys | |||
11 | from collections import namedtuple | 11 | from collections import namedtuple |
12 | from common import load_params | 12 | from common import load_params |
13 | from optparse import OptionParser | 13 | from optparse import OptionParser |
14 | from parse.dir_map import DirMap | ||
15 | from parse.point import ExpPoint | 14 | from parse.point import ExpPoint |
16 | from parse.tuple_table import ColMap,TupleTable | 15 | from parse.tuple_table import TupleTable |
16 | from parse.col_map import ColMapBuilder | ||
17 | 17 | ||
18 | 18 | ||
19 | def parse_args(): | 19 | def parse_args(): |
@@ -41,17 +41,17 @@ def parse_args(): | |||
41 | 41 | ||
42 | ExpData = namedtuple('ExpData', ['path', 'params', 'work_dir']) | 42 | ExpData = namedtuple('ExpData', ['path', 'params', 'work_dir']) |
43 | 43 | ||
44 | def get_exp_params(data_dir, col_map): | 44 | def get_exp_params(data_dir, cm_builder): |
45 | param_file = "%s/%s" % (data_dir, conf.DEFAULTS['params_file']) | 45 | param_file = "%s/%s" % (data_dir, conf.DEFAULTS['params_file']) |
46 | if not os.path.isfile: | 46 | if not os.path.isfile: |
47 | raise Exception("No param file '%s' exists!" % param_file) | 47 | raise Exception("No param file '%s' exists!" % param_file) |
48 | 48 | ||
49 | params = load_params(param_file) | 49 | params = load_params(param_file) |
50 | 50 | ||
51 | # Store parameters in col_map, which will track which parameters change | 51 | # Store parameters in cm_builder, which will track which parameters change |
52 | # across experiments | 52 | # across experiments |
53 | for key, value in params.iteritems(): | 53 | for key, value in params.iteritems(): |
54 | col_map.try_add(key, value) | 54 | cm_builder.try_add(key, value) |
55 | 55 | ||
56 | # Cycles must be present for feather-trace measurement parsing | 56 | # Cycles must be present for feather-trace measurement parsing |
57 | if conf.PARAMS['cycles'] not in params: | 57 | if conf.PARAMS['cycles'] not in params: |
@@ -60,7 +60,7 @@ def get_exp_params(data_dir, col_map): | |||
60 | return params | 60 | return params |
61 | 61 | ||
62 | 62 | ||
63 | def load_exps(exp_dirs, col_map, clean): | 63 | def load_exps(exp_dirs, cm_builder, clean): |
64 | exps = [] | 64 | exps = [] |
65 | 65 | ||
66 | sys.stderr.write("Loading experiments...\n") | 66 | sys.stderr.write("Loading experiments...\n") |
@@ -77,7 +77,7 @@ def load_exps(exp_dirs, col_map, clean): | |||
77 | if not os.path.exists(work_dir): | 77 | if not os.path.exists(work_dir): |
78 | os.mkdir(work_dir) | 78 | os.mkdir(work_dir) |
79 | 79 | ||
80 | params = get_exp_params(data_dir, col_map) | 80 | params = get_exp_params(data_dir, cm_builder) |
81 | 81 | ||
82 | exps += [ ExpData(data_dir, params, work_dir) ] | 82 | exps += [ ExpData(data_dir, params, work_dir) ] |
83 | 83 | ||
@@ -88,15 +88,16 @@ def main(): | |||
88 | 88 | ||
89 | args = args or [os.getcwd()] | 89 | args = args or [os.getcwd()] |
90 | 90 | ||
91 | # Load exp parameters into col_map | 91 | # Load exp parameters into a ColMap |
92 | col_map = ColMap() | 92 | builder = ColMapBuilder() |
93 | exps = load_exps(args, col_map, opts.force) | 93 | exps = load_exps(args, builder, opts.force) |
94 | 94 | ||
95 | # Don't track changes in ignored parameters | 95 | # Don't track changes in ignored parameters |
96 | if opts.ignore: | 96 | if opts.ignore: |
97 | for param in opts.ignore.split(","): | 97 | for param in opts.ignore.split(","): |
98 | col_map.try_remove(param) | 98 | builder.try_remove(param) |
99 | 99 | ||
100 | col_map = builder.build() | ||
100 | result_table = TupleTable(col_map) | 101 | result_table = TupleTable(col_map) |
101 | 102 | ||
102 | sys.stderr.write("Parsing data...\n") | 103 | sys.stderr.write("Parsing data...\n") |