blob: e0dbff7eedcf5aec2b56baad4e02e086b897613b [file] [log] [blame]
#! /bin/sh
#
# Create plots for the SMPdesign directory.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# Copyright (C) IBM Corporation, 2009
#
# Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
fontsize=10
plotsize=0.5
gnuplot << ---EOF---
set term pbm medium
set output "clockfreq.pbm"
set xlabel "Year"
set ylabel "CPU Clock Frequency / MIPS"
set logscale y
#set yrange [1:10000]
set yrange [0.1:10000]
set nokey
set xtics rotate
# set label 1 "rcu" at 0.1,10 left
# set label 2 "spinlock" at 0.5,3.0 left
# set label 3 "brlock" at 0.4,0.6 left
# set label 4 "rwlock" at 0.3,1.6 left
# set label 5 "refcnt" at 0.15,2.8 left
#plot "clockfreq.dat", "clockfreqP4.dat", "clockfreqP3.dat"
plot "clockfreq80x86.dat", "clockfreqPPro.dat", "clockfreqP1.dat", "clockfreqP2.dat", "clockfreqP3.dat", "clockfreqP4.dat", "clockfreqXeonDC.dat", "clockfreqAtom.dat", "clockfreqNehalem.dat"
# plot "clockfreqP4.dat", "clockfreqP3.dat", "clockfreqP2.dat"
set term postscript portrait ${fontsize} enhanced "NimbusSanL-Regu" fontfile "../fonts/uhvr8a.pfb"
set size square ${plotsize},${plotsize}
set output "|../utilities/gnuplotepsfix > clockfreq.eps"
replot
---EOF---
ppmtogif clockfreq.pbm > clockfreq.gif 2> /dev/null
gnuplot << ---EOF---
set term pbm medium
set output "CPUvsEnet.pbm"
set xlabel "Year"
set ylabel "Relative Performance"
set logscale y
#set yrange [1:10000]
set yrange [0.1:1000000]
set nokey
set xtics rotate
set label 1 "Ethernet" at 2009,70000 right
set label 2 "x86 CPUs" at 2001,100 left
# set label 3 "brlock" at 0.4,0.6 left
# set label 4 "rwlock" at 0.3,1.6 left
# set label 5 "refcnt" at 0.15,2.8 left
#plot "clockfreq.dat", "clockfreqP4.dat", "clockfreqP3.dat"
plot "enet.dat" w l, "clockfreq80x86.dat", "clockfreqPPro.dat", "clockfreqP1.dat", "clockfreqP2.dat", "clockfreqP3.dat", "clockfreqP4.dat", "clockfreqXeonDC.dat", "clockfreqAtom.dat", "clockfreqNehalem.dat"
# plot "clockfreqP4.dat", "clockfreqP3.dat", "clockfreqP2.dat"
set term postscript portrait ${fontsize} enhanced "NimbusSanL-Regu" fontfile "../fonts/uhvr8a.pfb"
set size square ${plotsize},${plotsize}
set output "|../utilities/gnuplotepsfix > CPUvsEnet.eps"
replot
---EOF---
ppmtogif CPUvsEnet.pbm > CPUvsEnet.gif 2> /dev/null
gnuplot << ---EOF---
set term pbm medium
set output "mipsperbuck.pbm"
set xlabel "Year"
set ylabel "MIPS per Die"
set logscale y
#set yrange [1:10000]
# set yrange [0.1:1000000]
set nokey
set xtics rotate
# set label 1 "Ethernet" at 2009,70000 right
# set label 2 "x86 CPUs" at 2001,100 left
# set label 3 "brlock" at 0.4,0.6 left
# set label 4 "rwlock" at 0.3,1.6 left
# set label 5 "refcnt" at 0.15,2.8 left
plot "mipsperbuck.dat"
# plot "clockfreqP4.dat", "clockfreqP3.dat", "clockfreqP2.dat"
set term postscript portrait ${fontsize} enhanced "NimbusSanL-Regu" fontfile "../fonts/uhvr8a.pfb"
set size square ${plotsize},${plotsize}
set output "|../utilities/gnuplotepsfix > mipsperbuck.eps"
replot
---EOF---
ppmtogif mipsperbuck.pbm > mipsperbuck.gif 2> /dev/null
gnuplot << ---EOF---
set term gif
set size square ${plotsize},${plotsize}
set output "synceff.gif"
set xlabel "Number of CPUs/Threads"
set ylabel "Synchronization Efficiency"
#set logscale y
set yrange [.1:1]
set xrange [1:100]
set nokey
set xtics rotate
set label 1 "10" at 12,0.2 left
set label 2 "25" at 27,0.3 left
set label 3 "50" at 52,0.4 left
set label 4 "75" at 76,0.5 left
set label 5 "100" at 96,0.65 right
eff(f,n)=(f-n)/(f-(n-1.))
plot eff(10,x), eff(25,x), eff(50,x), eff(75,x), eff(100,x)
set term postscript portrait enhanced "NimbusSanL-Regu" fontfile "../fonts/uhvr8a.pfb"
set output "|../utilities/gnuplotepsfix > synceff.eps"
replot
---EOF---
gnuplot << ---EOF---
set term gif
set size square ${plotsize},${plotsize}
set output "matmuleff.gif"
set xlabel "Number of CPUs/Threads"
set ylabel "Matrix Multiply Efficiency"
set logscale x
set xrange [1:100]
set nokey
set label 1 "64" at 3.5,0.4 right
set label 2 "128" at 3.8,0.72 right
set label 3 "256" at 17,0.68 right
set label 4 "512" at 75,0.58 right
set label 5 "1024" at 90,0.93 right
plot "matmul.sh.2010.03.28a.dat" w l, "matmul.sh.2010.03.28a.dat" w l
set term postscript portrait enhanced "NimbusSanL-Regu" fontfile "../fonts/uhvr8a.pfb"
set output "|../utilities/gnuplotepsfix > matmuleff.eps"
replot
---EOF---