6.1.1 · D2Parallelism & Multicore

Visual walkthrough — Flynn's taxonomy (SISD - SIMD - MIMD)

1,617 words7 min readBack to topic

Before any letter appears, agree on one picture: time is a horizontal bar. A longer bar means the program takes longer. Splitting work across cores means stacking pieces of the bar side-by-side instead of end-to-end so they finish together. That single idea drives everything below.


Step 1 — Draw the whole job as one bar of time

WHAT. We run a program on one core (one worker). Whatever it takes, we call that total time . The letter just names "how long the single-core run lasts" — nothing more.

WHY. We need a fixed reference. Every speedup is measured against this one honest run. If we don't pin down , "twice as fast" has no meaning.

PICTURE. One solid bar. Its full length is . Time flows left → right.

Figure — Flynn's taxonomy (SISD - SIMD - MIMD)

Step 2 — Not all work can be shared: split the bar in two

WHAT. Look inside the job. Some work must happen in order — reading a config file, setting up, printing the final answer. Call the fraction of the total that is stuck-in-order the serial part. The rest — loops over independent data, like the SIMD-style array adds from the parent — is the parallelizable part. We name the parallel fraction .

WHY. A "fraction" is just "what slice of the bar." If , then three-quarters of the bar can be spread across cores and one-quarter cannot. This split is the only thing that will decide the answer, so we make it visible first.

PICTURE. The same bar, now painted two colours: an amber serial chunk of length and a cyan parallel chunk of length .

Figure — Flynn's taxonomy (SISD - SIMD - MIMD)

Step 3 — Hand the parallel part to cores

WHAT. Introduce = the number of cores (workers). We take only the cyan parallel chunk and cut it into equal slices, then run those slices at the same time, stacked on top of each other. The serial amber chunk is untouched — it still runs on one core, alone.

WHY. This is the whole promise of a MIMD machine: independent work done simultaneously. Independent slices can overlap in time, so laid side-by-side their finish time is just one slice's length. One slice of the cyan chunk lasts : the parallel time divided among cores.

PICTURE. The cyan chunk fans out into shorter bars stacked vertically (they run together). The amber chunk stays full-length in front of them.

Figure — Flynn's taxonomy (SISD - SIMD - MIMD)

Step 4 — Rebuild the new, shorter bar

WHAT. The new total run time — call it — is what's left end-to-end: the serial chunk that never shrank plus the squished parallel chunk.

WHY. Cores overlapped the parallel work, but nothing could overlap the serial work — a single worker still has to grind through it. So we glue the two remaining lengths back into one bar.

PICTURE. A shorter bar: full amber serial piece, then a thin cyan stub of width .

Figure — Flynn's taxonomy (SISD - SIMD - MIMD)

Step 5 — Turn "shorter bar" into "how much faster": divide

WHAT. Speedup asks a ratio question: "how many times shorter is the new bar than the old bar?" So we divide old time by new time.

WHY. We use division and not subtraction because "twice as fast" is a ratio (bar half as long), not a difference in seconds. A ratio is what people mean by "speedup."

Every term has a factor of . That common cancels — the speedup does not care how long the program is, only how it is split. Divide top and bottom by :

Figure — Flynn's taxonomy (SISD - SIMD - MIMD)

Step 6 — The degenerate cases (check the formula never lies)

We must show the formula behaves sanely at every extreme, so no reader ever hits a scenario we skipped.

Case A — one core, . Plug in: . One core gives exactly the speed we started with. Good — no free lunch from doing nothing.

Case B — nothing parallel, . Then for any . A purely serial program ignores every extra core. The bar is all amber; slicing zero cyan changes nothing.

Case C — everything parallel, . Then . Perfect linear speedup — this is the ideal SIMD case from the parent, where lanes really do give .

PICTURE. Three bars side by side showing these limits.

Figure — Flynn's taxonomy (SISD - SIMD - MIMD)

Step 7 — The wall: let

WHAT. Push the number of cores toward infinity. In , as grows the whole term slides toward (dividing by a huge number). What survives?

WHY. This answers the headline question: what is the most speedup money can ever buy? Adding cores only attacks the term; it can never touch .

PICTURE. As cores climb, the cyan stub vanishes but the amber serial block remains — the bar flattens onto a floor, and the speedup curve bends into a ceiling of height .

Figure — Flynn's taxonomy (SISD - SIMD - MIMD)

The one-picture summary

Figure — Flynn's taxonomy (SISD - SIMD - MIMD)

The single figure ties it together: the original bar splits into serial (amber) + parallel (cyan); cores squeeze only the cyan; the serial amber sets a hard floor; and the speedup curve rises fast, then bends into the ceiling .

Recall Feynman retelling — say it like a story

Imagine painting a fence. Some of the work — buying the paint, opening the tin, cleaning up — you must do alone, in order. That's the amber part; friends can't help. The rest — actually brushing planks — you can split among helpers; that's the cyan part. Bring one friend, ten, a thousand: the brushing gets faster and faster, but the buying-and-cleanup time never changes. So the whole job can never get faster than the time that lonely amber work eats. Amdahl's Law is just the arithmetic of that fence: divide the original time by (the stubborn serial slice + the parallel slice cut into pieces), and no matter how many friends show up, you slam into a ceiling of one-over-the-serial-fraction.

Recall Quick self-test

With , what is the speedup ceiling as cores go to infinity? ::: . In Amdahl's Law, which term has no in it, and why does that matter? ::: The serial term ; it never shrinks with more cores, so it sets the hard limit. Why divide (not subtract) old time by new time to get speedup? ::: Speedup is a ratio ("half as long = 2×"), not a difference in seconds.

Return to the parent: Flynn's taxonomy (SISD · SIMD · MIMD).