add all materials
This commit is contained in:
parent
01e7a23ae2
commit
2ea0c0b60c
43 changed files with 20448 additions and 0 deletions
54
architecture/storage.py
Normal file
54
architecture/storage.py
Normal file
|
@ -0,0 +1,54 @@
|
|||
# Storage interfaces rates from
|
||||
# https://en.wikipedia.org/wiki/List_of_interface_bit_rates#Storage
|
||||
# Table data extracted with: https://wikitable2csv.ggor.de/
|
||||
import numpy as np
|
||||
import matplotlib
|
||||
from matplotlib import pyplot as plt
|
||||
plt.style.use('ggplot')
|
||||
matplotlib.rcParams['font.size'] = 12
|
||||
matplotlib.rcParams['font.family'] = ['Exo 2', 'sans-serif']
|
||||
|
||||
data = open('storage.csv', 'rt')
|
||||
# remove units and rescale everything to MB/s
|
||||
b_to_mb = 1/(1024*1024)
|
||||
kb_to_mb = 1/1024
|
||||
gb_to_mb = 1024
|
||||
rescaled = []
|
||||
for line in data:
|
||||
typ, rate, year = line.split(',')
|
||||
value, unit = rate.split()
|
||||
value = float(value)
|
||||
if unit == 'B/s':
|
||||
value = value*b_to_mb
|
||||
elif unit == 'KB/s':
|
||||
value = value*kb_to_mb
|
||||
elif unit == 'MB/s':
|
||||
pass
|
||||
elif unit == 'GB/s':
|
||||
value = value*gb_to_mb
|
||||
else:
|
||||
raise ValueError(f'Unit not understood! {unit}')
|
||||
rescaled.append((int(year), value))
|
||||
|
||||
dtype = [('year', np.float64), ('speed', np.float64)]
|
||||
rescaled = np.array(rescaled, dtype=dtype)
|
||||
# sort first by year and then by value
|
||||
rescaled.sort(order=['year', 'speed'])
|
||||
|
||||
# plot the thing
|
||||
plt.figure(figsize=(8.5,7.5))
|
||||
plt.semilogy(rescaled['year'], rescaled['speed'], 'o')
|
||||
# my laptop here
|
||||
plt.semilogy([2023], [6585], 'o')
|
||||
plt.grid(None)
|
||||
plt.grid(which='both', axis='y')
|
||||
plt.grid(which='both', axis='x')
|
||||
plt.ylim(b_to_mb, 100*gb_to_mb)
|
||||
plt.xlim(1960, 2025)
|
||||
years = range(1960,2026,5)
|
||||
plt.xticks(years, years, rotation=45, ha='center')
|
||||
plt.yticks([b_to_mb, kb_to_mb, 1, 10, 100, gb_to_mb, 10*gb_to_mb, 100*gb_to_mb],
|
||||
['1 B/s', '1 KB/s', '1 MB/s', '10 MB/s', '100 MB/s', '1 GB/s', '10 GB/s', '100 GB/s'])
|
||||
plt.tick_params(labeltop=False, labelright=True, top=True, right=True)
|
||||
plt.title('Storage (read) speed')
|
||||
plt.savefig('storage.svg')
|
Loading…
Add table
Add a link
Reference in a new issue