Newer
Older
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
import matplotlib.pyplot as plt
from memcached_numa_scan import collect_data
import os
from config import colors, patterns, markers
experiments = [
'memcached_numa_scan.5.15.79-peter', # vanilla
'memcached_numa_scan.5.15.79-peter.kernel_polling', # kernel_polling
]
labels = [
'vanilla',
'kernel polling (patched)',
]
def plot():
data = collect_data(experiments)
plt.cla()
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
plt.xticks([1, 2, 3, 4], ["1 + 1", "2 + 2", "4 + 4", "8 + 8"])
l = len(experiments)
for i in range(l):
offset = (0.4 * i + 0.2) - 0.4 * l / 2
exp = experiments[i]
ax1.bar([1 + offset, 2 + offset, 3 + offset, 4 + offset], data[exp][2], 0.4, yerr = data[exp][3], capsize=4, label = labels[i], edgecolor = colors[labels[i]], hatch = patterns[labels[i]], fill = False)
ax2.errorbar([1, 2, 3, 4], data[exp][4], yerr = data[exp][5], capsize = 4, label = labels[i], color = colors[labels[i]], marker = markers[labels[i]])
ax1.set_ylabel('IPQ')
ax2.set_ylabel('IPC')
ax1.set_ylim(0)
ax2.set_ylim(0)
ax1.legend(loc = 'lower left')
ax2.legend(loc = 'lower right')
if os.getenv('SAVE_FIGURE') != 'true':
plt.rcParams.update({'font.size': 16})
plt.show()
else:
plt.savefig('../data/figs/memcached_numa_scan_ipc.png', dpi = 192)
plot()