aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xassemble_files.py53
1 files changed, 53 insertions, 0 deletions
diff --git a/assemble_files.py b/assemble_files.py
new file mode 100755
index 0000000..f4be48f
--- /dev/null
+++ b/assemble_files.py
@@ -0,0 +1,53 @@
1#!/usr/bin/env python
2
3import sys
4
5from plot import decode
6from os.path import splitext, basename
7
8from glob import glob
9from collections import defaultdict
10
11#G-EDF/testpoint_ucap=13.75_wss=1792_dist=exp-10-10-100_deadlines=implicit_host=ludwig_scheduler=G-EDF.csv
12
13def key(fname):
14 name, ext = splitext(basename(fname))
15 conf = decode(name)
16 if 'quanta' in conf:
17 q = '_quanta=%s' % conf['quanta']
18 else:
19 q = ''
20 s = 'scheduler=%s' % conf['scheduler']
21 d = 'dist=%s' % conf['dist']
22 dl = 'deadlines=%s' % conf['deadlines']
23 h = 'host=%s' % conf['host']
24
25 return '_'.join([d, dl, s, h]) + q
26
27def assemble_results(dir):
28 files = glob(dir + '/*.csv')
29
30 parts = defaultdict(list)
31
32 for f in files:
33 k = key(f)
34 parts[k].append(f)
35
36 for i, k in enumerate(parts):
37 comment = 1
38 print '[%d/%d] Processing %s' % (i+ 1, len(parts), k)
39 out = open('sched_%s.csv' % k, 'w')
40 for f in sorted(parts[k]):
41 for line in open(f):
42 if line[0] != '#' or comment:
43 out.write(line)
44 if line[0] == '#':
45 comment -= 1
46 out.close()
47
48
49
50if __name__ == '__main__':
51 for d in sys.argv[1:]:
52 assemble_results(d)
53