Labs
Each lab takes under an hour on a laptop and turns a claim from this mechanism into a number you measured yourself.
- 1
Write amplification: same-age vs. mixed-age writes
A flash translation layer simulator filled to 50–90% and overwritten with same-age (whole files) and mixed-age (random pages) writes.
SimulatePython with NumPy - 2
The cost of utilization, u/(1-u)
A log-structured store with a greedy cleaner at 50% to 95% live pages: pages copied per page of new space, against u/(1 − u).
SimulatePython - 3
Sorted vs. shuffled branch benchmark
Sum the elements above a threshold over shuffled and sorted data, compiled at -O1, -O2, -O3 and with a branch the compiler cannot remove.
MeasureC compiler, Python - 4
Put your own code on the roofline
Measure this machine's memory and compute ceilings, then place a scan, a filter and a hash aggregation on its roofline.
MeasurePython with NumPy - 5
Reproduce incast on a laptop
One receiver asks N senders for 32 KB at once, N from 1 to 500, with synchronized and jittered replies: p50, p99, p999 on loopback.
MeasurePython - 6
Fit a USL curve to something real
N processes each scanning their own array (memory-bandwidth-bound): fit the Universal Scalability Law at N ≤ 8 and test the prediction beyond.
MeasurePython with NumPy, SciPy