-
Notifications
You must be signed in to change notification settings - Fork 0
/
all_the_graphs
executable file
·251 lines (228 loc) · 37.5 KB
/
all_the_graphs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
#!/bin/sh
splitbasepair() {
local pair="$1"
set -e
dec="`printf %s "$pair" | cut -f1`"
bin="`printf %s "$pair" | cut -f2`"
}
countones() {
local binary="$1"
set -e
printf %s "$binary" | tr -d 0 | wc -c
}
counttrailingzeroes() {
local binary="$1"
set -e
printf %s "$((`printf %s "$binary" | rev | cut -d1 -f1 | wc -c` - 1))"
}
processbasepairs() {
local oper="$1"
set -e
local pair
while read pair
do
splitbasepair "$pair"
printf %s " -e's/\"0x$dec\"/`"$oper" "$bin"`/i'"
done
}
insertratioentries() {
local filename="$1"
local numerator="$2"
local denominator="$3"
local newfield="$4"
if grep -F "\"$numerator\"" "$filename" >/dev/null && grep -F "\"$denominator\"" "$filename" >/dev/null
then
local revcols="cat"
if grep -Fe"\"$numerator\"" -e"\"$denominator\"" "$filename" | head -n1 | grep -F "\"$denominator\"" >/dev/null
then
revcols="sed s/\(.*\)\t\(.*\)/\2\t\1/"
fi
sed -n "s;.*\"\($numerator\|$denominator\)\": \(.\+\),;\2;p" "$filename" | paste - - | $revcols | tr "\t" / | bc -l | sed "s;^;\t\t\t\t\t\"$newfield\": 0;" | sed -e'/\t\t\t\t\t[^,]\+$/R/dev/stdin' -e"/\"`printf %s "$newfield" | sed 's;/;\\\\/;g'`\"/!s/\t\t\t\t\t[^,]\+$/&,/" "$filename"
else
cat "$filename"
fi
}
if [ $# -lt 2 ]
then
cat <<-tac
Usage: $0 [-o] input_json independent_variable [baseline-contention json file] [series]..."
-o means to show the offset of the first cache way (default is the number of them).
for [baseline-contention json file], note that the presence of this file depends on the filename containing \".json\" in it somewhere.
If a series name contains \".json\" in it anywhere the behavior is undefined.
tac
exit 1
elif [ $# -ge 3 ] && printf %s "$1" | grep '^-' >/dev/null
then
if [ "$1" != "-o" ]
then
printf "%s\n" "$1: Unrecognized switch; did you mean '-o'?" 2>&1
exit 2
else
methodandapparatus="counttrailingzeroes"
fi
shift
else
methodandapparatus="countones"
fi
# Accepts png, pdf, eps, svg and probably more but those were the 4 in the documentation
filetype="pdf"
name="`basename -s .json "$1"`"
quest="$2"
baseline_contention_file="";
color="Not applicable"
SLO=70
if [ "$quest" = "mite_tput_limit" ]
then
echo "Are you sure you didn't mean mite_throughput?"
fi
if [ "$quest" = "table_entries" ]
then
echo "Are you sure you didn't mean working_set_size?"
fi
if printf %s "$quest" | grep "\.json" >/dev/null
then
echo "Error: Missing independent variable or independent variable contains \".json\" which is illegal"
exit 2
fi
# Post Processing
./strip "$1" >"$name-stripped.json"
# Replace cache ways with numbers so graphing works better
bothbases="`sed -n 's/.*"0x\([^"]\+\)".*/\1/p' "$name-stripped.json" | sort | uniq | tr [a-f] [A-F] | sed 's/.*/obase=10; &; obase=2; &/;1iibase=16' | bc | paste - -`"
eval sed -i"`printf "%s\n" "$bothbases" | processbasepairs "$methodandapparatus"`" '"$name-stripped.json"'
[ "$methodandapparatus" = "counttrailingzeroes" ] && jaguar/jaguar get "$name-stripped.json" legend.samples.cache_ways.description | sed 's/ways/of first way/' | jaguar/jaguar set "$name-stripped.json" legend.samples.cache_ways.description -
extra_flags='--no-commit --notitle'
if printf %s "$3" | grep "\.json" >/dev/null
then
echo "Using baseline/contention data series from file $3"
baseline_contention_file="$3"
# Try not to break the default behavior, somewhat non-ideal solution
shift 1
./combine-json.py -i "$name-stripped.json" -a "$baseline_contention_file" --baseline-contention -o "$name-stripped.json"
fi
shift 2
if [ -z "$*" ]
then
set allocation baseline contention
fi
#insertratioentries "$name-stripped.json" LLC_MISS LLC_REFERENCE LLC_MISS_RATIO >"$name-augmented.json"
#mv "$name-augmented.json" "$name-stripped.json"
#insertratioentries "$name-stripped.json" L2_RQSTS/MISS L2_RQSTS/REFERENCES L2_RQSTS/MISS_RATIO >"$name-augmented.json"
#mv "$name-augmented.json" "$name-stripped.json"
#insertratioentries "$name-stripped.json" L2_RQSTS/DEMAND_DATA_RD_MISS L2_RQSTS/ALL_DEMAND_DATA_RD L2_RQSTS/DEMAND_DATA_RD_MISS_RATIO >"$name-augmented.json"
#mv "$name-augmented.json" "$name-stripped.json"
#insertratioentries "$name-stripped.json" L2_RQSTS/CODE_RD_MISS L2_RQSTS/ALL_CODE_RD L2_RQSTS/CODE_RD_MISS_RATIO >"$name-augmented.json"
#mv "$name-augmented.json" "$name-stripped.json"
./post-process.py -i "$name-stripped.json" -b 56 -s -p -c -m
# End post processing
mkdir -p ./graphs/
mkdir -p ./graphs/"$name"
# tail graphs
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata 50tail-latency --title "50% tail latency vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-50."$filetype" --legend-y 0.7 --legend-x 1.5 --legend-loc "upper left" `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata 95tail-latency --title "95% tail latency vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-95."$filetype" --legend-y 0.7 --legend-x 1.5 --legend-loc "upper left" `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata 99tail-latency --title "99% tail latency vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-99."$filetype" --legend-y 0.7 --legend-x 1.5 --legend-loc "upper left" `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata 999tail-latency --title "99.9% tail latency vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-999."$filetype" --legend-y 0.7 --legend-x 0.55 --legend-loc "upper left" `eval echo $extra_flags` --ymax 600 --nosort
echo "Finished tail graphs"
# perf graphs
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "stalled-cycles-scaled" --title "Stalled cycles vs Mite Ways" -o ./graphs/"$name"/"$name"-stalled-cycles."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "cpu-cycles-scaled" --title "CPU cycles vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-cpu-cycles."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "instructions-scaled" --title "instructions vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-instructions."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L1-dcache-load-misses-scaled" --title "L1-dcache-load-misses (L1D.REPLACEMENT) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l1-dcache-load-misses."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L1-dcache-load-misses-per-kilo-instruction" --title "L1-dcache-load-misses per kilo-instruction (L1D.REPLACEMENT) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l1-dcache-load-misses-per-kilo-instruction."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L1-icache-load-misses-scaled" --title "L1-icache-load-misses (ICACHE.MISSES) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l1-icache-load-misses."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L1-icache-load-misses-per-kilo-instruction" --title "L1-icache-load-misses per kilo-instruction (ICACHE.MISSES) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l1-icache-load-misses-per-kilo-instruction."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "dTLB-load-misses" --title "dTLB-load-misses (DTLB_LOAD_MISSES.MISS_CAUSES_A_WALK) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-dtlb-load-misses."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "dTLB-load-misses-per-kilo-instruction" --title "dTLB-load-misses per kilo-instruction(DTLB_LOAD_MISSES.MISS_CAUSES_A_WALK) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-dtlb-load-misses-per-kilo-instruction."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "iTLB-load-misses" --title "iTLB-load-misses (ITLB_LOAD_MISSES.MISS_CAUSES_A_WALK) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-itlb-load-misses."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "iTLB-load-misses-per-kilo-instruction" --title "iTLB-load-misses per kilo-instruction (ITLB_LOAD_MISSES.MISS_CAUSES_A_WALK) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-itlb-load-misses-per-kilo-instruction."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "MEM_UOPS_RETIRED/ALL_LOADS-scaled" --title "MEM_UOPS_RETIRED.ALL_LOADS (i.e. L1-dcache-loads, dTLB-load-misses) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-mem-uops-retired-all-loads."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "MEM_LOAD_UOPS_RETIRED/L1_MISS-scaled" --title "MEM_LOAD_UOPS_RETIRED/L1_MISS vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-mem-load-uops-retired-l1-miss."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "MEM_LOAD_UOPS_RETIRED/L2_MISS-scaled" --title "MEM_LOAD_UOPS_RETIRED/L2_MISS vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-mem-load-uops-retired-l2-miss."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata ""MEM_LOAD_UOPS_RETIRED/L3_MISS"-scaled" --title "MEM_LOAD_UOPS_RETIRED.L3_MISS (BDE70) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-mem-uops-retired-l3-miss."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_RQSTS/DEMAND_DATA_RD_MISS-scaled" --title "L2_RQSTS.DEMAND_DATA_RD_MISS vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-demand-data-rd-miss."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_RQSTS/DEMAND_DATA_RD_MISS-per-kilo-instruction" --title "L2_RQSTS.DEMAND_DATA_RD_MISS per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-demand-data-rd-miss-per-kilo-instruction."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_RQSTS/DEMAND_DATA_RD_MISS_RATIO" --title "L2_RQSTS.DEMAND_DATA_RD_MISS RATIO vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-demand-data-rd-miss-ratio."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --legend-loc "upper right" --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_RQSTS/ALL_DEMAND_DATA_RD-scaled" --title "L2_RQSTS.ALL_DEMAND_DATA_RD vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-all-demand-data-rd."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_RQSTS/ALL_DEMAND_DATA_RD-per-kilo-instruction" --title "L2_RQSTS.ALL_DEMAND_DATA_RD per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-all-demand-data-rd-per-kilo-instruction."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_RQSTS/ALL_CODE_RD-scaled" --title "L2_RQSTS.ALL_CODE_RD vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-all-code-rd."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_RQSTS/ALL_CODE_RD-per-kilo-instruction" --title "L2_RQSTS.ALL_CODE_RD per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-all-code-rd-per-kilo-instruction."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_TRANS/DEMAND_DATA_RD-scaled" --title "L2_RQSTS.DEMAND_DATA_RD vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-demand-data-rd."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_TRANS/DEMAND_DATA_RD-per-kilo-instruction" --title "L2_RQSTS.DEMAND_DATA_RD per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-demand-data-rd-per-kilo-instruction."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_TRANS/DEMAND_DATA_RD-scaled" --title "L2_TRANS.DEMAND_DATA_RD vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-trans-demand-data-rd."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_TRANS/DEMAND_DATA_RD-per-kilo-instruction" --title "L2_TRANS.DEMAND_DATA_RD per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-trans-demand-data-rd-per-kilo-instruction."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_TRANS/CODE_RD-scaled" --title "L2_TRANS.CODE_RD vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-trans-code-rd."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_TRANS/CODE_RD-per-kilo-instruction" --title "L2_TRANS.CODE_RD per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-trans-code-rd-per-kilo-instruction."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_RQSTS/CODE_RD_MISS-scaled" --title "L2_RQSTS.CODE_RD_MISS (HSW) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-code-rd-miss."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_RQSTS/CODE_RD_MISS-per-kilo-instruction" --title "L2_RQSTS.CODE_RD_MISS (HSW) per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-code-rd-miss-per-kilo-instruction."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_RQSTS/CODE_RD_MISS_RATIO" --title "L2_RQSTS.CODE_RD_MISS RATIO (HSW) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-code-rd-miss-ratio."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_RQSTS/ALL_DEMAND_MISS-scaled" --title "L2_RQSTS.ALL_DEMAND_MISS (HSW) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-all-demand-miss."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_RQSTS/ALL_DEMAND_MISS-per-kilo-instruction" --title "L2_RQSTS.ALL_DEMAND_MISS (HSW) per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-all-demand-miss-per-kilo-instruction."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_RQSTS/ALL_DEMAND_REFERENCES-scaled" --title "L2_RQSTS.ALL_DEMAND_REFERENCES (HSW) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-all-demand-references."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_RQSTS/ALL_DEMAND_REFERENCES-per-kilo-instruction" --title "L2_RQSTS.ALL_DEMAND_REFERENCES (HSW) per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-all-demand-references-per-kilo-instruction."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_RQSTS/MISS-scaled" --title "L2_RQSTS.MISS (HSW) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-miss."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_RQSTS/MISS-per-kilo-instruction" --title "L2_RQSTS.MISS (HSW) per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-miss-per-kilo-instruction."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_RQSTS/MISS_RATIO" --title "L2_RQSTS.MISS RATIO (HSW) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-miss-ratio."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_RQSTS/REFERENCES-scaled" --title "L2_RQSTS.REFERENCES (HSW) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-references."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "L2_RQSTS/REFERENCES-per-kilo-instruction" --title "L2_RQSTS.REFERENCES (HSW) per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-references-per-kilo-instruction."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "LLC_REFERENCE-scaled" --title "LLC_REFERENCE (BDE70) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-llc-reference."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "LLC_REFERENCE-per-kilo-instruction" --title "LLC_REFERENCE (BDE70) per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-llc-reference-per-kilo-instruction."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "LLC_MISS-scaled" --title "LLC_MISS (BDE70) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-llc-miss."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "LLC_MISS-per-kilo-instruction" --title "LLC_MISS (BDE70) per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-llc-miss-per-kilo-instruction."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --legend-loc "upper left" --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "LLC_MISS_RATIO" --title "LLC_MISS RATIO vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-llc-miss-ratio."$filetype" --legend-y 0.7 --legend-x 1.0 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "intel_cqm/local_bytes" --title "System-wide memory bandwidth usage vs $quest" -o ./graphs/"$name"/"$name"-intel_cqm-local_bytes."$filetype" --legend-y 0.7 --legend-x 0.6 --legend-loc "upper left" `eval echo $extra_flags` --nosort
echo "Finished perf graphs"
# Contender perf graphs
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-stalled-cycles-scaled" --title "Stalled cycles vs Mite Ways" -o ./graphs/"$name"/"$name"-stalled-cycles-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-cpu-cycles-scaled" --title "CPU cycles vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-cpu-cycles-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-instructions-scaled" --title "instructions vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-instructions-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L1-dcache-load-misses-scaled" --title "L1-dcache-load-misses (L1D.REPLACEMENT) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l1-dcache-load-misses-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L1-dcache-load-misses-per-kilo-instruction" --title "L1-dcache-load-misses per kilo-instruction (L1D.REPLACEMENT) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l1-dcache-load-misses-per-kilo-instruction-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L1-icache-load-misses-scaled" --title "L1-icache-load-misses (ICACHE.MISSES) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l1-icache-load-misses-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L1-icache-load-misses-per-kilo-instruction" --title "L1-icache-load-misses per kilo-instruction (ICACHE.MISSES) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l1-icache-load-misses-per-kilo-instruction-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-dTLB-load-misses" --title "dTLB-load-misses (DTLB_LOAD_MISSES.MISS_CAUSES_A_WALK) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-dtlb-load-misses-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-dTLB-load-misses-per-kilo-instruction" --title "dTLB-load-misses per kilo-instruction(DTLB_LOAD_MISSES.MISS_CAUSES_A_WALK) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-dtlb-load-misses-per-kilo-instruction-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-iTLB-load-misses" --title "iTLB-load-misses (ITLB_LOAD_MISSES.MISS_CAUSES_A_WALK) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-itlb-load-misses-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-iTLB-load-misses-per-kilo-instruction" --title "iTLB-load-misses per kilo-instruction (ITLB_LOAD_MISSES.MISS_CAUSES_A_WALK) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-itlb-load-misses-per-kilo-instruction-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-MEM_UOPS_RETIRED/ALL_LOADS-scaled" --title "MEM_UOPS_RETIRED.ALL_LOADS (i.e. L1-dcache-loads, dTLB-load-misses) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-mem-uops-retired-all-loads-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-MEM_LOAD_UOPS_RETIRED/L1_MISS-scaled" --title "MEM_LOAD_UOPS_RETIRED/L1_MISS vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-mem-load-uops-retired-l1-miss-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-MEM_LOAD_UOPS_RETIRED/L2_MISS-scaled" --title "MEM_LOAD_UOPS_RETIRED/L2_MISS vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-mem-load-uops-retired-l2-miss-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-"MEM_LOAD_UOPS_RETIRED/L3_MISS"-scaled" --title "MEM_LOAD_UOPS_RETIRED.L3_MISS (BDE70) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-mem-uops-retired-l3-miss-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_RQSTS/DEMAND_DATA_RD_MISS-scaled" --title "L2_RQSTS.DEMAND_DATA_RD_MISS vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-demand-data-rd-miss-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_RQSTS/DEMAND_DATA_RD_MISS-per-kilo-instruction" --title "L2_RQSTS.DEMAND_DATA_RD_MISS per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-demand-data-rd-miss-per-kilo-instruction-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_RQSTS/DEMAND_DATA_RD_MISS_RATIO" --title "L2_RQSTS.DEMAND_DATA_RD_MISS RATIO vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-demand-data-rd-miss-ratio-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --legend-loc "upper right" --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_RQSTS/ALL_DEMAND_DATA_RD-scaled" --title "L2_RQSTS.ALL_DEMAND_DATA_RD vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-all-demand-data-rd-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_RQSTS/ALL_DEMAND_DATA_RD-per-kilo-instruction" --title "L2_RQSTS.ALL_DEMAND_DATA_RD per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-all-demand-data-rd-per-kilo-instruction-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_RQSTS/ALL_CODE_RD-scaled" --title "L2_RQSTS.ALL_CODE_RD vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-all-code-rd-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_RQSTS/ALL_CODE_RD-per-kilo-instruction" --title "L2_RQSTS.ALL_CODE_RD per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-all-code-rd-per-kilo-instruction-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_TRANS/DEMAND_DATA_RD-scaled" --title "L2_RQSTS.DEMAND_DATA_RD vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-demand-data-rd-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_TRANS/DEMAND_DATA_RD-per-kilo-instruction" --title "L2_RQSTS.DEMAND_DATA_RD per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-demand-data-rd-per-kilo-instruction-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_TRANS/DEMAND_DATA_RD-scaled" --title "L2_TRANS.DEMAND_DATA_RD vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-trans-demand-data-rd-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_TRANS/DEMAND_DATA_RD-per-kilo-instruction" --title "L2_TRANS.DEMAND_DATA_RD per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-trans-demand-data-rd-per-kilo-instruction-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_TRANS/CODE_RD-scaled" --title "L2_TRANS.CODE_RD vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-trans-code-rd-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_TRANS/CODE_RD-per-kilo-instruction" --title "L2_TRANS.CODE_RD per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-trans-code-rd-per-kilo-instruction-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_RQSTS/CODE_RD_MISS-scaled" --title "L2_RQSTS.CODE_RD_MISS (HSW) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-code-rd-miss-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_RQSTS/CODE_RD_MISS-per-kilo-instruction" --title "L2_RQSTS.CODE_RD_MISS (HSW) per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-code-rd-miss-per-kilo-instruction-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_RQSTS/CODE_RD_MISS_RATIO" --title "L2_RQSTS.CODE_RD_MISS RATIO (HSW) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-code-rd-miss-ratio-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_RQSTS/ALL_DEMAND_MISS-scaled" --title "L2_RQSTS.ALL_DEMAND_MISS (HSW) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-all-demand-miss-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_RQSTS/ALL_DEMAND_MISS-per-kilo-instruction" --title "L2_RQSTS.ALL_DEMAND_MISS (HSW) per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-all-demand-miss-per-kilo-instruction-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_RQSTS/ALL_DEMAND_REFERENCES-scaled" --title "L2_RQSTS.ALL_DEMAND_REFERENCES (HSW) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-all-demand-references-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_RQSTS/ALL_DEMAND_REFERENCES-per-kilo-instruction" --title "L2_RQSTS.ALL_DEMAND_REFERENCES (HSW) per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-all-demand-references-per-kilo-instruction-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_RQSTS/MISS-scaled" --title "L2_RQSTS.MISS (HSW) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-miss-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_RQSTS/MISS-per-kilo-instruction" --title "L2_RQSTS.MISS (HSW) per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-miss-per-kilo-instruction-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_RQSTS/MISS_RATIO" --title "L2_RQSTS.MISS RATIO (HSW) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-miss-ratio-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_RQSTS/REFERENCES-scaled" --title "L2_RQSTS.REFERENCES (HSW) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-references-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-L2_RQSTS/REFERENCES-per-kilo-instruction" --title "L2_RQSTS.REFERENCES (HSW) per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-l2-rqsts-references-per-kilo-instruction-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-LLC_REFERENCE-scaled" --title "LLC_REFERENCE (BDE70) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-llc-reference-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-LLC_REFERENCE-per-kilo-instruction" --title "LLC_REFERENCE (BDE70) per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-llc-reference-per-kilo-instruction-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-LLC_MISS-scaled" --title "LLC_MISS (BDE70) vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-llc-miss-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-LLC_MISS-per-kilo-instruction" --title "LLC_MISS (BDE70) per kilo-instruction vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-llc-miss-per-kilo-instruction-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --legend-loc "upper left" --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-LLC_MISS_RATIO" --title "LLC_MISS RATIO vs Mica Throughput Limit" -o ./graphs/"$name"/"$name"-llc-miss-ratio-contender."$filetype" --legend-y 0.7 --legend-x 1.0 `eval echo $extra_flags` --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata "contender-intel_cqm/local_bytes" --title "System-wide memory bandwidth usage vs $quest" -o ./graphs/"$name"/"$name"-intel_cqm-local_bytes-contender."$filetype" --legend-y 0.7 --legend-x 0.6 --legend-loc "upper left" `eval echo $extra_flags` --nosort
echo "Finished contender perf graphs"
./graph-cat.py --input "$name"-stripped.json --series `for word in "$@"; do [ "$word" != "baseline" -a "$word" != "basealloc" ] && echo "$word"; done` --xdata "$quest" --ydata contender_tput --title "Contender throughput vs Mite Ways" -o ./graphs/"$name"/"$name"-contender."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --legend-loc "upper left" --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata mite_throughput --title "Mite throughput vs $quest" -o ./graphs/"$name"/"$name"-mite."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --legend-loc "lower left" --nosort
echo "Finished throughput graphs"
./graph-double.py --input-top "$name"-stripped.json --input-bottom "$name"-stripped.json --series allocation contention --xdata-bottom "$quest" --xdata-top "$quest" --ydata-bottom 999tail-latency --ydata-top contender_tput --title "Contender Throughput & Mica 99.9%-ile Tail Latency vs $quest" --outfile ./graphs/"$name"/"$name"-tputandtail."$filetype" --legend-xl 1.0 --legend-yl 0.6 --legend-xr 1.0 --legend-yr 0.4 `eval echo $extra_flags` --legend-loc-top "lower left" --legend-loc-bottom "lower left"
echo "Finished double graphs"
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata 999tail-latency --title "Cost analysis" -o ./graphs/"$name"/"$name"-cost-200."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --legend-loc "upper left" --hline-y "200" --ymax 600 --nosort
./graph-cat.py --input "$name"-stripped.json --series "$@" --xdata "$quest" --ydata 999tail-latency --title "Cost analysis" -o ./graphs/"$name"/"$name"-cost-100."$filetype" --legend-y 0.7 --legend-x 1.5 `eval echo $extra_flags` --legend-loc "upper left" --hline-y "100" --ymax 600 --nosort
echo "Finished cost-analysis graphs"