summaryrefslogtreecommitdiffstats
path: root/distill_schedcat_profiles.py
diff options
context:
space:
mode:
Diffstat (limited to 'distill_schedcat_profiles.py')
-rwxr-xr-xdistill_schedcat_profiles.py21
1 files changed, 16 insertions, 5 deletions
diff --git a/distill_schedcat_profiles.py b/distill_schedcat_profiles.py
index 8d34904..83c90cb 100755
--- a/distill_schedcat_profiles.py
+++ b/distill_schedcat_profiles.py
@@ -48,14 +48,21 @@ class DataFile(object):
48 self.sched = self.conf['scheduler'] 48 self.sched = self.conf['scheduler']
49 self.overhead = self.conf['overhead'] 49 self.overhead = self.conf['overhead']
50 self.host = self.conf['host'] 50 self.host = self.conf['host']
51 self.locks = self.conf['locks'] if 'locks' in self.conf else None
51 self.name = name 52 self.name = name
52 self.data = load_csv_file(fname) 53 self.data = load_csv_file(fname)
53 54
55 def key(self):
56 if self.locks:
57 return "%s/%s" % (self.sched, self.locks)
58 else:
59 return self.sched
60
54 61
55def group_by_scheduler(files): 62def group_by_scheduler(files):
56 g = defaultdict(list) 63 g = defaultdict(list)
57 for f in files: 64 for f in files:
58 g[f.sched].append(f) 65 g[f.key()].append(f)
59 return g 66 return g
60 67
61NUM_INDEX = 2 68NUM_INDEX = 2
@@ -79,10 +86,14 @@ def write_profiles(files):
79 wc = [row(i, WC_INDEX) for i in xrange(num)] 86 wc = [row(i, WC_INDEX) for i in xrange(num)]
80 header = ['NUM_TASKS'] + [f.overhead.replace('-', '_') for f in files] 87 header = ['NUM_TASKS'] + [f.overhead.replace('-', '_') for f in files]
81 88
82 avg_name = '%soh_host=%s_scheduler=%s_stat=avg%s.csv' % \ 89 if files[0].locks:
83 (options.prefix, host, sched, options.tag) 90 lock_str = '_locks=%s' % files[0].locks
84 wc_name = '%soh_host=%s_scheduler=%s_stat=wc%s.csv' % \ 91 else:
85 (options.prefix, host, sched, options.tag) 92 lock_str = ''
93 avg_name = '%soh_host=%s_scheduler=%s%s_stat=avg%s.csv' % \
94 (options.prefix, host, sched, lock_str, options.tag)
95 wc_name = '%soh_host=%s_scheduler=%s%s_stat=wc%s.csv' % \
96 (options.prefix, host, sched, lock_str, options.tag)
86 97
87 print 'Generating %s.' % (avg_name) 98 print 'Generating %s.' % (avg_name)
88 write_csv_file(avg_name, [header] + avg, width=15) 99 write_csv_file(avg_name, [header] + avg, width=15)