How does a multi-core CPU work
With several kitchens, the work isn't taking turns: it really happens together at the same moment. This time we look at true simultaneity.
What if there's more than one kitchen?
Until now there was one kitchen, and one worker switched quickly between a bit of this job and a bit of that.
But what if there were two or three kitchens? There'd be as many workers, each cooking at the same time in their own kitchen. It isn't taking turns: several are really working at the same moment.
A computer's "kitchens" are called cores. With several cores, it can truly handle several jobs at the same moment.
When a phone or laptop says 4-core or 8-core, it's simply counting how many kitchens it has.
One kitchen means taking turns; several kitchens mean truly working at the same moment.
With several cores, several jobs are truly handled together at the same moment.
Truly together, or just switching fast
Earlier we said that if one worker switches quickly, it looks like doing things at once. That was an illusion: at any one moment, it was doing only one thing.
With several kitchens, it's different. Look at any single moment, and work is truly moving forward in this kitchen and that one at the same time.
That makes a difference. Illusory simultaneity only looks fast, while true simultaneity really finishes more work in the same time.
However quickly one kitchen switches, the total amount of work done doesn't grow, it's only shared out; but with more kitchens, the total amount that can be handled itself grows.
Fast switching in one kitchen is an illusion; several kitchens are truly simultaneous.
Switching on one core only looks simultaneous, while several cores really work together.
Adding kitchens
There's a big pile of work to finish. Change the number of kitchens yourself.
With one kitchen, the jobs are handled one at a time. Add kitchens, and several jobs are handled at once, so the same amount finishes sooner.
Two kitchens take roughly half the time, four take less still. Keep adding and watch how quickly the pile shrinks.
That's why heavy jobs like converting many photos at once or making a video finish much faster when they're cut into pieces and handed out to several kitchens.
Change the number of kitchens to see how fast the same work gets done.
The more kitchens, the faster the same work gets done, but you soon hit a limit.
Double doesn't mean twice as fast
Doubling the kitchens seems like it should make things twice as fast. But it doesn't always.
Some work can't be split. While you wait for dough to rise, even ten kitchens won't make it faster. And when workers try to use the same single ingredient at once, they have to wait for each other.
So adding kitchens speeds things up a lot at first, but from some point on, the speedup no longer keeps pace with the added kitchens, because only so much of the work can be divided.
In the end, however many kitchens you add, the part that can't be split sets the ceiling on the overall speed.
Because of work that can't be split and waiting on each other, adding cores has its limits.
More cores make things faster, but because some work can't be split, the speedup isn't endless.
Summing it up on one page
There are just three things to remember.
First, with several cores, work truly happens at the same time: not the illusion of one worker switching quickly, but several kitchens working together at the same moment.
Second, that's why the same work finishes faster: the work is divided and handed to several kitchens. Third, there's still a limit: because of work that can't be split and waiting on each other, doubling the cores doesn't make things exactly twice as fast.
In the end, how much faster things get depends less on the number of kitchens than on how finely the work can be divided.
Several cores are truly simultaneous, so faster, but with a limit.