Many Cores and the Limit on Speedup
When one core stops getting faster, machines add cores, and the gain then depends on how much of the work can actually run at the same time. The serial fraction sets a ceiling that no number of cores can lift.
What a learner can do afterwards
- Compute the best possible speedup for a program that is one tenth serial
- Distinguish work that splits across cores from work that splits across data lanes
- Explain why adding cores can make a program slower
1 · Read
Pipelining overlapped steps inside one core, but one core still stops getting faster, so machines add cores. But the part that must run in order caps the gain. With a tenth of the work serial, even endless cores top out at ten times: one divided by one tenth.
Take that tenth-serial program on nine cores. The serial tenth stays, and the rest splits nine ways: one tenth plus nine tenths over nine, which is two tenths. One divided by two tenths is five, so nine cores buy five times, not nine.
Cores and lanes are different tools. Cores split separate tasks that run on their own. Data lanes march many numbers through one step together. Code that splits across cores may still stall inside one lane.
More cores can even slow a program. Splitting, syncing, and sharing caches cost steps, and fights over one lock can dwarf the parallel gain. Measure before you buy.
The serial tenth caps you at ten times, lanes differ from cores, and overhead can bite.
2 · Watch
Take it off screen
Where it sits
8 questions wait behind this lesson, each with its answer explained. Every answer feeds the sky: stars light as they are learned, and dim when it is time to come back.