From 3754940bf865349a583fce2ad48acd9e31c8f3bb Mon Sep 17 00:00:00 2001 From: "Bjoern B. Brandenburg" Date: Mon, 24 Jan 2011 12:47:11 -0500 Subject: abuse --wide in semi-part wsched plots Shift to the large WSS range if --wide is provided. --- plot.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'plot.py') diff --git a/plot.py b/plot.py index 5f0df59..353ae75 100755 --- a/plot.py +++ b/plot.py @@ -594,11 +594,18 @@ class SchedPlotter(defapp.App): xcol = 1 p.xlabel = "working set size (WSS)" p.ylabel = "weighted schedulability" - p.xticks = (0, 64) - p.xrange = (-1, 1025) - if self.options.alternate: + if self.options.wide: + # tail plot WSS > 1024 + p.xticks = (0, 256) + p.xrange = (1023, 3073) + elif self.options.alternate: + # NPS-F comparison p.xrange = (-1, 257) p.xticks = (0, 32) + else: + # regular plot + p.xticks = (0, 64) + p.xrange = (-1, 1025) else: self.err("What kind of semipart experiment is this?") return -- cgit v1.2.2 From d7d9c89f404468dd9fe9c6eae70496fe60367ff2 Mon Sep 17 00:00:00 2001 From: "Bjoern B. Brandenburg" Date: Sun, 10 Apr 2011 13:20:31 -0400 Subject: Add support for EMSOFT'11 experiment plotting. --- plot.py | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) (limited to 'plot.py') diff --git a/plot.py b/plot.py index 353ae75..c618b1c 100755 --- a/plot.py +++ b/plot.py @@ -673,6 +673,95 @@ class SchedPlotter(defapp.App): p.gnuplot_exec() + def plot_mpcp_omlp(self, tmpfile, name, conf): + curves = [ + ('MPCP (virtual spinning)', 5), + ('MPCP (suspension-based)', 4), + ('OMLP (mutex, c=1)', 6), + ] + + p = self.make_plot(name) + + if 'ucap' in conf and 'pacc' in conf: + xcol = 1 + p.xlabel = 'resource probability' + p.xrange = (0, 1) + tinfo = ' utilization=%s request-probability=%s' % \ + (conf['ucap'], conf['pacc']) + elif 'ucap' in conf and 'pres' in conf: + xcol = 2 + p.xlabel = 'request probability' + p.xrange = (0, 0.8) + tinfo = ' utilization=%s resource-probability=%s' % \ + (conf['ucap'], conf['pres']) + else: + xcol = 3 + p.xlabel = 'per-processor utilization (prior to blocking accounting)' + p.xrange = (0.2, 1) + tinfo = ' request-probability=%s resource-probability=%s' % \ + (conf['pacc'], conf['pres']) + + pinfo = " m=%s" % conf['m'] + + p.title = scenario_heading(conf, True) + r'\n' + tinfo + pinfo + + p.ylabel = "ratio of schedulable task sets" + p.yrange = (-0.05, 1.05) + p.yticks = (0, 0.1) + p.xticks = (0, 0.1) + + p.curves += [curve(fname=tmpfile, xcol=xcol, ycol=idx, title=t) + for (t, idx) in curves] + + #### Styling. + + if not self.setup_png(p): + p.rounded_caps = True + p.font = 'Helvetica' + + if self.options.paper: + p.default_style = 'lines lw 2.5' + p.font_size = '5pt' + p.size = ('8.5cm', '5.25cm') + p.monochrome = False + p.dashed_lines = False + if not self.options.alternate: + p.key ='off' + p.size = ('9cm', '4.0cm') + p.yticks = (0, 0.1) + p.key = 'bottom left' + p.default_style = 'linespoints lw 3.5' + elif self.options.slides: + p.dashed_lines = False + p.monochrome = False + p.rounded_caps = True + p.default_style = 'lines lw 10' + p.key = 'below' + elif self.options.appendix: + # for the appendix + p.font_size = '8' + p.size = ('17cm', '9cm') + p.key = 'below' + p.monochrome = False + p.dashed_lines = False + p.default_style = 'linespoints lw 3.5' + else: + p.font_size = '10' + p.size = ('20cm', '10cm') + p.monochrome = False + p.dashed_lines = False + p.key = 'below' + p.default_style = 'linespoints lw 1' + + if self.options.smooth: + p.default_style += " smooth bezier" + + if self.options.save_script: + p.gnuplot_save(p.output + '.plot') + else: + p.gnuplot_exec() + + def plot_file(self, datafile): bname = basename(datafile) name, ext = splitext(bname) @@ -698,6 +787,7 @@ class SchedPlotter(defapp.App): 'rtss09' : self.plot_rtss09_split if self.options.split else self.plot_rtss09, 'ospert10' : self.plot_ospert10, 'eurosys11' : self.plot_semipart, + 'emsoft11-part' : self.plot_mpcp_omlp, } if self.options.experiment: -- cgit v1.2.2 From 68a8a52a44372869404ee0950ddb2c209b25a155 Mon Sep 17 00:00:00 2001 From: "Bjoern B. Brandenburg" Date: Sun, 10 Apr 2011 13:41:32 -0400 Subject: Use custom linestyles for ECRTS11 experiments. --- plot.py | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) (limited to 'plot.py') diff --git a/plot.py b/plot.py index c618b1c..ba67ff2 100755 --- a/plot.py +++ b/plot.py @@ -541,12 +541,12 @@ class SchedPlotter(defapp.App): npsf_comp = [ ('NPS-F (idle, delta=1)', 9), - ('NPS-F (idle, delta=4)', 10), - ('NPS-F (load, delta=1)', 7), ('C-NPS-F (idle, delta=1)', 13), + ('NPS-F (idle, delta=4)', 10), ('C-NPS-F (idle, delta=4)', 14), - ('NPS-F (load, delta=4)', 8), + ('NPS-F (load, delta=1)', 7), ('C-NPS-F (load, delta=1)', 11), + ('NPS-F (load, delta=4)', 8), ('C-NPS-F (load, delta=4)', 12), ] @@ -611,17 +611,32 @@ class SchedPlotter(defapp.App): return p.curves += [curve(fname=tmpfile, xcol=xcol, ycol=idx, title=t) - for (t, idx) in titles] + for (i, (t, idx)) in enumerate(titles)] p.yrange = (-0.05, 1.05) p.yticks = (0, 0.1) #### Styling. + if not self.setup_png(p): p.rounded_caps = True p.font = 'Helvetica' + if self.options.paper or self.options.appendix: + for i, c in enumerate(p.curves): + c.style = "linespoints ls %d" % (i + 1) + + p.line_styles = [ + (1, "lw 2.5"), + (2, "lw 2.5"), + (3, "lw 2.5"), + (4, "lw 2.5"), + (5, 'lw 2.5 lc rgbcolor "#ff910d"'), + (6, "lw 2.5"), + (7, 'lw 2.5 lc rgbcolor "#000000"'), + (8, "lw 2.5"), + ] if self.options.paper: p.default_style = 'lines lw 2.5' @@ -630,11 +645,10 @@ class SchedPlotter(defapp.App): p.monochrome = False p.dashed_lines = False if not self.options.alternate: - p.key ='below' - p.size = ('14.5cm', '4cm') - p.yticks = (0, 0.2) - -# p.key = 'below' + p.key ='off' + p.size = ('8.5cm', '5.5cm') + p.yticks = (0, 0.1) + p.key = 'below' p.default_style = 'linespoints lw 2.5' elif self.options.slides: p.dashed_lines = False -- cgit v1.2.2