From 55d915be53a20c416d8d83c55889c29e9c788a7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20B=2E=20Brandenburg?= Date: Sun, 10 Oct 2010 01:25:41 -0400 Subject: tweak semipart plotting --- plot.py | 73 +++++++++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 46 insertions(+), 27 deletions(-) (limited to 'plot.py') diff --git a/plot.py b/plot.py index 3347993..6984311 100755 --- a/plot.py +++ b/plot.py @@ -513,50 +513,69 @@ class SchedPlotter(defapp.App): self.plot(gs, title, xname, conf) def plot_semipart(self, tmpfile, name, conf): - if 'soft' in conf: - titles = ['P-EDF (load)', 'P-EDF (idle)'] + if not 'soft' in conf: + cedf_titles = [('P-EDF (load)', 3), ('P-EDF (idle)', 4)] else: - titles = ['C-EDF (load)', 'C-EDF (idle)'] - - titles += [ - 'EDF-WM (load)', - 'EDF-WM (idle)', - 'NPS-F (load, delta=1)', - 'NPS-F (load, delta=4)', - 'NPS-F (idle, delta=1)', - 'NPS-F (idle, delta=4)', - 'C-NPS-F (load, delta=1)', - 'C-NPS-F (load, delta=4)', - 'C-NPS-F (idle, delta=1)', - 'C-NPS-F (idle, delta=4)'] - - if 'soft' in conf: - titles += [ - 'EDF-fm (load)', - 'EDF-fm (idle)', - ] + cedf_titles = [('C-EDF (load)', 3), ('C-EDF (idle)', 4)] + + edfwm_titles = [ + ('EDF-WM (load)', 5), + ('EDF-WM (idle)', 6) + ] + + npsf_titles = [ + ('NPS-F (load, delta=1)', 7), + ('NPS-F (load, delta=4)', 8), + ('NPS-F (idle, delta=1)', 9), + ('NPS-F (idle, delta=4)', 10), + ] + + cnpsf_titles = [ + ('C-NPS-F (load, delta=1)', 11), + ('C-NPS-F (load, delta=4)', 12), + ('C-NPS-F (idle, delta=1)', 13), + ('C-NPS-F (idle, delta=4)', 14), + ] + + edffm_titles = [ + ('EDF-fm (load)', 15), + ('EDF-fm (idle)', 16), + ] + + + if self.options.alternate: + # NPS-F comparison + titles = npsf_titles + cnpsf_titles + else: + # all + titles = cedf_titles + edfwm_titles + npsf_titles + cnpsf_titles + if 'soft' in conf: + titles += edffm_titles p = self.make_plot(name) p.title = scenario_heading(conf, True) if 'sched' in conf: - p.curves += [curve(fname=tmpfile, xcol=2, ycol=(y + 3), title=t) - for (y, t) in enumerate(titles)] p.ylabel = "ratio of schedulable task sets" p.xlabel = "task set utilization cap (prior to overhead accounting)" p.xticks = (0, 1) p.xrange = (0.95, 24.05) p.title += "; %skB WSS" % conf['key'] + xcol = 2 elif 'wsched' in conf: - p.curves += [curve(fname=tmpfile, xcol=1, ycol=(y + 3), title=t) - for (y, t) in enumerate(titles)] + xcol = 1 p.xlabel = "working set size (WSS)" p.ylabel = "weighted schedulability" p.xticks = (0, 64) else: self.err("What kind of semipart experiment is this?") + p.curves += [curve(fname=tmpfile, xcol=xcol, ycol=idx, title=t) + for (t, idx) in titles] + + p.yrange = (-0.05, 1.05) + p.yticks = (0, 0.1) #### Styling. @@ -567,9 +586,9 @@ class SchedPlotter(defapp.App): p.font_size = '10' p.size = ('20cm', '10cm') p.monochrome = False - p.dashed_lines = True + p.dashed_lines = False p.key = 'below' - p.default_style = 'lines lw 6' + p.default_style = 'linespoints lw 1' if self.options.smooth: p.default_style += " smooth bezier" -- cgit v1.2.2