set terminal pdf color enhanced size 6.0in,4.0in font "Times,17" #set terminal postscript portrait enhanced size 7.5, 10. color solid 9.5; #set terminal wxt size 950,1250 INDIR="build" OUTDIR="build" SRCDIR="plots" SCALE=1024 # common to all set macros set output OUTDIR."/plot-string-allocn.pdf" set multiplot layout 1, 2 ; set grid # # CFA multisize # #set errorbars dashtype '.' set logscale x 2 set xlabel "Heap Used (B)" set logscale y 10 set key outside top center set ylabel "Duration (ns)" offset 2,0 set yrange[40:150] set ytics add (40, 50, 60, 70, 80, 90, 110, 120, 130, 140, 150) set xrange[32:8192] set xtics rotate by -90 set xtics ("" 32, "64 k" 64, "" 128, "256 k" 256, "" 512, "1 M" 1024, "" 2048, "4 M" 4096) # First each curve, then each default-expansion point plot INDIR."/plot-string-allocn.dat" \ i 0 using ($5/SCALE):2 notitle with lines lt rgb "blue" dt '.' lw 2, \ '' i 1 using ($5/SCALE):2 notitle with lines lt rgb "red" dt '.' lw 2, \ '' i 2 using ($5/SCALE):2 notitle with lines lt rgb "brown" dt '.' lw 2, \ '' i 3 using ($5/SCALE):2 title "tuning contour" with lines lt rgb "black" dt '.' lw 2, \ '' i 4 using ($5/SCALE):2 notitle with lines lt rgb "magenta" dt '.' lw 2, \ '' i 0 using ($5/SCALE):2:3:4 notitle with yerrorbars lt rgb "blue" pt 7 ps 0.25 lw 1, \ '' i 1 using ($5/SCALE):2:3:4 notitle with yerrorbars lt rgb "red" pt 7 ps 0.25 lw 1, \ '' i 2 using ($5/SCALE):2:3:4 notitle with yerrorbars lt rgb "brown" pt 7 ps 0.25 lw 1, \ '' i 3 using ($5/SCALE):2:3:4 notitle with yerrorbars lt rgb "black" pt 7 ps 0.25 lw 1, \ '' i 4 using ($5/SCALE):2:3:4 notitle with yerrorbars lt rgb "magenta" pt 7 ps 0.25 lw 1, \ '' i 0 using ( ($8 == 1) ? ($5/SCALE) : 1/0 ):2 notitle with points lt rgb "blue" pt 66 ps 2, \ '' i 1 using ( ($8 == 1) ? ($5/SCALE) : 1/0 ):2 notitle with points lt rgb "red" pt 66 ps 2, \ '' i 2 using ( ($8 == 1) ? ($5/SCALE) : 1/0 ):2 notitle with points lt rgb "brown" pt 66 ps 2, \ '' i 3 using ( ($8 == 1) ? ($5/SCALE) : 1/0 ):2 title "default tuning" \ with points lt rgb "black" pt 66 ps 2, \ '' i 4 using ( ($8 == 1) ? ($5/SCALE) : 1/0 ):2 notitle with points lt rgb "magenta" pt 66 ps 2, \ '' i 0 using ($5/SCALE):2:("{/Times=15 len-\n20") every ::1::1 with labels left offset 0.75,0.25 textcolor rgb "blue" notitle, \ '' i 1 using ($5/SCALE):2:("{/Times=15 len-\n50") every ::5::5 with labels right offset -0.6 ,1.5 textcolor rgb "red" notitle, \ '' i 2 using ($5/SCALE):2:("{/Times=15 len-\n100") every ::4::4 with labels right offset -0.75,0.5 textcolor rgb "brown" notitle, \ '' i 3 using ($5/SCALE):2:("{/Times=15 len-\n200") every ::4::4 with labels right offset -0.75,1.25 textcolor rgb "black" notitle, \ '' i 4 using ($5/SCALE):2:("{/Times=15 len-\n500") every ::4::4 with labels right offset -0.75,0.25 textcolor rgb "magenta" notitle, \ '' i 5 using ($5/SCALE) :2 notitle with lines lt rgb "#BF007F7F" lw 8, \ '' i 6 using ($5/SCALE) :2 notitle with lines lt rgb "#BF007F7F" lw 8, \ '' i 7 using ($5/SCALE) :2 notitle with lines lt rgb "#BF007F7F" lw 8, \ '' i 8 using ($5/SCALE) :2 title "tradeoff" with lines lt rgb "#BF007F7F" lw 8, \ '' i 9 using ($5/SCALE) :2 notitle with lines lt rgb "#BF007F7F" lw 8, \ '' i 5 using ( (strcol(8) eq "stl") ? ($5/SCALE) : 1/0 ):2:3:4 notitle with yerrorbars lt rgb "#00007F7F" pt 6 ps 0.5 lw 2 , \ '' i 6 using ( (strcol(8) eq "stl") ? ($5/SCALE) : 1/0 ):2:3:4 notitle with yerrorbars lt rgb "#00007F7F" pt 6 ps 0.5 lw 2 , \ '' i 7 using ( (strcol(8) eq "stl") ? ($5/SCALE) : 1/0 ):2:3:4 notitle with yerrorbars lt rgb "#00007F7F" pt 6 ps 0.5 lw 2 , \ '' i 8 using ( (strcol(8) eq "stl") ? ($5/SCALE) : 1/0 ):2:3:4 notitle with yerrorbars lt rgb "#00007F7F" pt 6 ps 0.5 lw 2 , \ '' i 9 using ( (strcol(8) eq "stl") ? ($5/SCALE) : 1/0 ):2:3:4 notitle with yerrorbars lt rgb "#00007F7F" pt 6 ps 0.5 lw 2 unset ylabel unset xlabel unset xtics unset ytics unset yrange unset xrange unset logscale unset xlabel unset mxtics # # Attribution # set key outside top center vertical maxrows 3 set logscale x 2 #set mxtics 3 # 3 steps within each doubling (e.g. 3 steps of of 32 between 32 and 128 => tick on 32s in there) set yrange[0:105] set ytics auto set xrange[2.0e4:3e7] # set xtics rotate by -90 # set xtics ("" 32, "64 k" 64, "" 128, "256 k" 256, "" 512, "1 M" 1024, "" 2048, "4 M" 4096) set style fill solid 1.0 BAR_RELWD = 0.5 BAR_XSHIFT = (1+BAR_RELWD)**(-0.55) LEN_X_SEP = 1.7 # get segment draw order (front to back) from metadata file meta = system('cat '.SRCDIR.'/string-allocn-attrib-meta.dat') STATS_words = words(meta) array STATS_word[STATS_words] do for [i=1:STATS_words] { STATS_word[i] = word(meta, i) } # bonus legend of black box = sepcomp overhead set object rect from graph 0.05, graph 0.92 to graph 0.11, graph 0.935 fc rgb "black" set label "sep. comp.\noverhead" at graph 0.14, graph 0.935 left font "Times,15" pattern(i) = \ (i==1 ? 1 : \ i==2 ? 4 : \ i==3 ? 2 : \ i==4 ? 6 : \ i==5 ? 3 : \ i==6 ? 5 : \ 1) plot \ for [i=STATS_words:1:-1] \ INDIR.'/plot-string-allocn-attrib.dat' \ using (stringcolumn("category") eq STATS_word[i] ? (BAR_XSHIFT*$1**LEN_X_SEP*$3/SCALE) : 1/0): \ (stringcolumn("category") eq STATS_word[i] ? ($5 + $8) : 1/0): \ (stringcolumn("category") eq STATS_word[i] ? (BAR_RELWD*(BAR_XSHIFT*$1**LEN_X_SEP*$3/SCALE)) : 1/0) \ with boxes ls i fs pattern pattern(i) title STATS_word[i], \ INDIR.'/plot-string-allocn-attrib-sepcmp.dat' \ using (BAR_XSHIFT*$1**LEN_X_SEP*$3/SCALE*0.75): \ (($8+$10)/2): \ (BAR_RELWD*(BAR_XSHIFT*$1**LEN_X_SEP*$3/SCALE)/4): \ ($9/2) \ notitle \ with boxxyerrorbars lt rgb "black", \ INDIR."/plot-string-allocn.dat" \ i 1 using (50 **LEN_X_SEP*$5/SCALE):2 notitle with lines lt rgb "red" dt '.' lw 2, \ '' i 3 using (200**LEN_X_SEP*$5/SCALE):2 notitle with lines lt rgb "black" dt '.' lw 2, \ '' i 1 using ( ($8 == 1) ? (50 **LEN_X_SEP*$5/SCALE) : 1/0 ):2 notitle with points lt rgb "red" pt 66 ps 2, \ '' i 3 using ( ($8 == 1) ? (200**LEN_X_SEP*$5/SCALE) : 1/0 ):2 notitle with points lt rgb "black" pt 66 ps 2, \ '' i 1 using ( ($8 == 1) ? (50 **LEN_X_SEP*$5/SCALE) : 1/0 ):2:3:4 notitle with yerrorbars lt rgb "red" pt 7 ps 0.25 lw 1, \ '' i 3 using ( ($8 == 1) ? (200**LEN_X_SEP*$5/SCALE) : 1/0 ):2:3:4 notitle with yerrorbars lt rgb "black" pt 7 ps 0.25 lw 1, \ '' i 1 using (50 **LEN_X_SEP*$5/SCALE):2:("{/Times=15 len-\n50") every ::5::5 with labels right offset -0.6 ,1.5 textcolor rgb "red" notitle, \ '' i 3 using (200**LEN_X_SEP*$5/SCALE):2:("{/Times=15 len-\n200") every ::4::4 with labels right offset -0.75,1.25 textcolor rgb "black" notitle, \ '' i 6 using (50 **LEN_X_SEP*$5/SCALE) :2 notitle with lines lt rgb "#BF007F7F" lw 8, \ '' i 8 using (200**LEN_X_SEP*$5/SCALE) :2 notitle with lines lt rgb "#BF007F7F" lw 8, \ '' i 6 using ( (strcol(8) eq "stl") ? (50 **LEN_X_SEP*$5/SCALE) : 1/0 ):2:3:4 notitle with yerrorbars lt rgb "#00007F7F" pt 6 ps 0.5 lw 2 , \ '' i 8 using ( (strcol(8) eq "stl") ? (200**LEN_X_SEP*$5/SCALE) : 1/0 ):2:3:4 notitle with yerrorbars lt rgb "#00007F7F" pt 6 ps 0.5 lw 2 # i 6 using ($5/SCALE) :2:(BAR_RELWD*($5/SCALE)) notitle with boxes lt rgb "grey" , \ # '' i 8 using ($5/SCALE) :2:(BAR_RELWD*($5/SCALE)) notitle with boxes lt rgb "grey" , \ # '' i 6 using ($5/SCALE) :($2-40):(BAR_RELWD*($5/SCALE)) notitle with boxes lt rgb "blue", \ # '' i 8 using ($5/SCALE) :($2-40):(BAR_RELWD*($5/SCALE)) notitle with boxes lt rgb "blue", \