TWiR quote of the week

Not sure if this can be trimmed down to be suitable, but it's just so elegant:

If a normal add is a waffle iron, SIMD add is a double or quadruple waffle iron. You can make 2 or 4 or more waffles at the same time.

In case of waffles it would be called SIMW: Single Iron, Multiple Waffles.

It's not multithreading - because you open and close the waffle iron for all the waffles at the same time. :slight_smile:

-- EarthyFeet @ Reddit - Dive into anything

I love this explanation! Multi-threading would be having many chefs working independently.

SIMD allows a single chef to make many waffles at the same time.

The drawback is that the 4-waffle iron can only make 4 waffles at the same time. It can't make, for example, two pieces of toast and two waffles. There's also a toaster that makes 4 pieces of toasted bread at the same time, but that machine can't make waffles.

So if you really want one piece of toast and one waffle made as quickly as possible, you're better off hiring two chefs.

-- octo_anders @ Reddit - Dive into anything

And a common issue with kitchens trying to upgrade to SIMW, that they don't have their ingredients arranged properly. For example, you don't want to use a regula-size batter ladle to fill the vector batch waffle maker. You want a big ladle that can fill the whole machine without a lot of wasted movement. And if some of your waffles are blueberry and others are banana, that's fine, but you don't want the chef to have to walk around grabbing each ingredient while the machine sits idle. Everything works better if you have the ingredients lined up and ready to go right next to the machine. All of this is doable, but it's important to plan these things carefully when upgrading a kitchen to SIMW, to get the most value out of the machine.

-- oconnor663 @ Reddit - Dive into anything

Wonderful! I feel this analogy works 100%.

Even without SIMW, some superscalar chefs may actually cook multiple waffles simultaneously. Some may even process customers out-of-order, making many quick waffles while waiting for a pizza to bake.

It is even possible to speculate on incoming orders, and start making a blueberry waffle before the topping is even decided! If the topping-predictor makes a bad prediction, the waffle can just be thrown away. In the long run, it is correct often enough to increase throughput!

-- octo_anders @ Reddit - Dive into anything

EDIT: And even more great additions are still being made to the thread, like a waffle-based explanation of speculative execution vulnerabilities.

22 Likes