It’s end of term time again. As part of making The Morning Paper habit sustainable I take a few weeks off three times a year to do some more relaxed background reading, recharge my paper queues, and let my mind wander. The Morning Paper will return on Monday 7th August.
Here are a few selections from the last few months to tide you over in case you missed them:
- Efficient memory disaggregation with Infiniswap
- Semi-supervised knowledge transfer for deep learning from private data
- Trajectory recovery from Ash
- Bolt: I know what you did last summer
- Mosaic: processing a trillion edge graph on a single machine
- Statistical analysis of latency through semantic profiling
- Node.fz: fuzzing the server-side event-driven architecture
- System Programming in Rust: beyond safety
- Gray failure: the Achilles heel of cloud-scale systems
- IoT goes nuclear: creating a ZigBee chain reaction
And here’s something a little different which didn’t quite fit in any particular paper review as a fun thought to leave you with for now: developing an intuition for orders of magnitude and some of the numbers you see in CS papers.
Time
When I was looking at forthcoming hardware changes (All Change Please), translating all of the nanoseconds, microseconds, and milliseconds onto a human scale really helped me to understand the massive performance differences. If we set up a ‘human time’ scale where one nanosecond is represented by one second, then we have:
1 nanosecond = 1 second 1 microsecond = 16.7 minutes 1 millisecond = 11.6 days 1 second = 31.7 years
(Because we jump three orders of magnitude at each step, you can start the scale at any point, e.g., if you equate one microsecond with one second, then one millisecond is about 16.7 minutes).
Latency
Units of time help when looking at absolute feeds and speeds. But for comparing relative latencies I like to think about ‘how fast does it get there’. Let’s set as a baseline a person walking at a brisk pace of 4 miles per hour. Maybe you need to get from New York to San Francisco for example. Then,
- One order of magnitude faster is the car that drives past you at 40mph.
- Two orders of magnitude faster is approximately a commercial airliner. (Thanks to Dan Holle for this analogy)
- Three orders of magnitude faster is literally faster than a speeding bullet from a high-powered rifle (see: Muzzle Velocity)
Throughput
To visualise relative throughput I like to think of people crossing a checkpoint at a border (e.g., every traveller’s favourite: the customs and immigration line). Let’s set as the baseline one person getting through every second. Then,
- One order of magnitude higher throughput is a minibus’ worth of people arriving every second and getting through.
- Two orders of magnitude higher throughput is two coaches’s worth of people arriving every second and getting through.
- Three orders of magnitude higher throughput is approximately two Airbus A380’s worth of people arriving every second and getting through (I wish!).