18
18
19
19
csv=" $BASELINE .strong.csv"
20
20
svg=" $BASELINE .strong.svg"
21
+ csv_wt=" $BASELINE .wt.csv"
22
+ svg_wt=" $BASELINE .wt.svg"
21
23
22
24
bg_path () {
23
25
benchmark_group=$1
@@ -47,7 +49,7 @@ stddev_ns() {
47
49
fi
48
50
}
49
51
50
- sayfile Aggregating " $csv "
52
+ sayfile Aggregating " $csv_wt "
51
53
52
54
thread_counts=$(
53
55
for benchmark_group in " $@ "
@@ -65,10 +67,10 @@ done | sort -n | uniq
65
67
for benchmark_group in " $@ "
66
68
do
67
69
group=$( echo " $benchmark_group " | tr ' ;' ' _' )
68
- printf " ; %s" " $group "
70
+ printf " ; %s" " $group "
69
71
done
70
72
printf " \n"
71
- ) > " $csv "
73
+ ) > " $csv_wt "
72
74
73
75
echo " $thread_counts " | while read -r thread_count
74
76
do
77
79
do
78
80
if t=$( time_ns " $benchmark_group " " $thread_count " )
79
81
then
80
- t_seq=$( time_ns " $benchmark_group " 1)
81
- speedup=$( echo " $t_seq / $t " | bc -l)
82
- printf " ; %f" " $speedup "
82
+ printf " ;%f" " $t "
83
83
else
84
- printf " ;"
84
+ printf " ;"
85
85
fi
86
86
done
87
87
printf " \n"
88
- done >> " $csv "
88
+ done >> " $csv_wt "
89
89
90
- max_thread_count=$( echo " $thread_counts " | tail -n1)
91
- plot_cmds=$( awk -v csv=" $csv " " BEGIN{
92
- for (i=1; i<ARGC; i++) {
93
- gsub(/_/, \"\\\\ _\" , ARGV[i])
94
- printf \" ,'%s' using 1:%d title '%s' with linespoints\" ,csv,i+1,ARGV[i]
90
+ sayfile Aggregating " $csv "
91
+
92
+ awk '
93
+ BEGIN { FS = ";"; OFS = ";" }
94
+ (NR == 1) { print }
95
+ (NR == 2) {
96
+ for (i = 2; i <= NF; i++) { t_seq[i] = $i; $i = 1 }
97
+ print
98
+ }
99
+ (NR > 2) {
100
+ for (i = 2; i <= NF; i++) {
101
+ if ($i != "") { $i = t_seq[i] / $i }
102
+ }
103
+ print
104
+ }
105
+ ' " $csv_wt " > " $csv "
106
+
107
+ speedup_bound=$( awk '
108
+ BEGIN { max_speedup = 0; FS = ";" }
109
+ (NR > 1) {
110
+ for (i = 2; i <= NF; i++) {
111
+ if (max_speedup < $i) { max_speedup = $i }
112
+ }
95
113
}
96
- }" $@ )
114
+ END { print max_speedup * 1.05 }
115
+ ' " $csv " )
116
+
117
+ max_thread_count=$( echo " $thread_counts " | tail -n1)
118
+ plot_cmds () {
119
+ csv=" $1 "
120
+ shift
121
+
122
+ i=2
123
+ for p in " $@ "
124
+ do
125
+ p=$( echo " $p " | sed ' s/_/\\_/g' )
126
+ printf " '%s' using 1:%d title '%s' with linespoints" " $csv " " $i " " $p "
127
+ if [ $i -le $# ]
128
+ then printf " , "
129
+ fi
130
+ i=$(( i+ 1 ))
131
+ done
132
+ }
133
+
134
+ sayfile Rendering " $svg "
97
135
98
136
gnuplot << EOF
99
137
set output '$svg '
100
138
set datafile separator ';'
101
139
set term svg size 1366,768
102
140
103
- set title 'Strong scaling'
141
+ set title '$TITLE - strong scaling'
104
142
set xlabel 'Number of threads'
105
143
set ylabel 'Speedup'
106
144
set xrange [1:$max_thread_count ]
107
- set logscale x 2
108
- set logscale y 2
145
+ set yrange [1:$speedup_bound ]
109
146
set grid ytics
110
- plot x title 'Ideal' dashtype 2 $ plot_cmds
147
+ plot x title 'Ideal' dashtype 2, $( plot_cmds " $csv " " $@ " )
111
148
EOF
112
149
113
- say Rendered " $svg "
150
+ sayfile Rendering " $svg_wt "
151
+
152
+ gnuplot << EOF
153
+ set output '$svg_wt '
154
+ set datafile separator ';'
155
+ set term svg size 1366,768
156
+
157
+ set title '$TITLE - wall time'
158
+ set xlabel 'Number of threads'
159
+ set ylabel 'Wall time (ns)'
160
+ set xrange [1:$max_thread_count ]
161
+ set logscale y 10
162
+ set grid ytics
163
+ plot $( plot_cmds " $csv_wt " " $@ " )
164
+ EOF
0 commit comments