diff options
| author | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2011-02-24 19:53:15 -0500 |
|---|---|---|
| committer | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2011-02-24 19:53:15 -0500 |
| commit | 1544ece408128d205dd4eb469cf3b73f5b622f2f (patch) | |
| tree | 065ed109a219f6415d11d7cbb765cc220cc13d89 | |
| parent | d89e4e391acf930bf865a68f76accaa9248d401c (diff) | |
add little helper script to combine results on topsail
| -rwxr-xr-x | assemble_files.py | 53 |
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 | |||
| 3 | import sys | ||
| 4 | |||
| 5 | from plot import decode | ||
| 6 | from os.path import splitext, basename | ||
| 7 | |||
| 8 | from glob import glob | ||
| 9 | from 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 | |||
| 13 | def 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 | |||
| 27 | def 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 | |||
| 50 | if __name__ == '__main__': | ||
| 51 | for d in sys.argv[1:]: | ||
| 52 | assemble_results(d) | ||
| 53 | |||
