Live data from Hacker News

Ask HN: Why are modern Intel CPUs not getting a lot more cores?

news.ycombinator.com

1–10 of 71 posts

Ask HN: Why are modern Intel CPUs not getting a lot more cores?

#1
As we move to further process nodes, I presume we have more surface area to put cores in. About a decade ago, people used to say we'd get CPUs that have the same clockspeeds but have a lot more cores. When I look at Skylake and Kabylake (rumors), I don't see the number of cores increasing (we seem to be at 2 for laptops and 4 for desktops). I know there are some SKUs like the 6850 with more, and of course, there arr Xeon chips. But .. why are desktop processors not getting beefier over the last 5-10 years?

Re: Ask HN: Why are modern Intel CPUs not getting a lot more cores?

#2
Because common desktop applications still don't do much with multiple cores, and thus a few fast cores are better (and techniques like TurboBoost are useful, where cores sleep to free the energy budget to allow a single core to clock even higher). And for many things, CPUs have been fast enough for quite a while now.

So the common CPUs have only a few cores, people who really want more get to pay the premium for the gamer models or Xeons, since they don't really have alternatives, and Intel knows that ;)

For servers, you can get CPUs with 4-16 small(er), low-power cores instead of a few large ones. (Atom C2xxx, Xeon-D)

Re: Ask HN: Why are modern Intel CPUs not getting a lot more cores?

#4
post #2

Because common desktop applications still don't do much with multiple cores, and thus a few fast cores are better (and techniques like TurboBoost are useful, where cores sleep to free the energy budget to allow a single core to clock even higher). And for many things, CPUs have been fast enough for quite a while now. So the common CPUs have only a few cores, people who really want more get to pay the premium for the…

How many applications are actively running on a modern desktop? The kernel and GUI... The modern browser with Javascript engine? An always listening Cortana or Siri would be nice for many people. What's the current threading on modern games? I'd think at least 8 cores could be utilized.

Re: Ask HN: Why are modern Intel CPUs not getting a lot more cores?

#5
post #4
post #2

Because common desktop applications still don't do much with multiple cores, and thus a few fast cores are better (and techniques like TurboBoost are useful, where cores sleep to free the energy budget to allow a single core to clock even higher). And for many things, CPUs have been fast enough for quite a while now. So the common CPUs have only a few cores, people who really want more get to pay the premium for the…

How many applications are actively running on a modern desktop? The kernel and GUI... The modern browser with Javascript engine? An always listening Cortana or Siri would be nice for many people. What's the current threading on modern games? I'd think at least 8 cores could be utilized.

But could they be better utilized than 4 cores with the same energy budget and cost?

Most of the time, most applications use barely any CPU at all. What you really feel is the moments when a single application suddenly needs a lot of CPU, and when it isn't parallelized it wants a single fast one, not several slower ones. I almost never see my system under 100 % load, but I regularly see processes maxing a single core.

Re: Ask HN: Why are modern Intel CPUs not getting a lot more cores?

#6
A balance needs to be striken between the consumers of data (OOO execution, multiple issues, HT threads and multiple cores), and the providers of data, the cache subsystem (and memory etc).

Bigger caches that would be required by more cores in order to keep the "usefulness" of the design in balance, would lead to higher power consumption, which a) is a primary criterium of evaluation of the product such as laptops, even before the computing power; b) not justified given typical "office+home" workload, as already mentioned in the answers.

Re: Ask HN: Why are modern Intel CPUs not getting a lot more cores?

#7

A balance needs to be striken between the consumers of data (OOO execution, multiple issues, HT threads and multiple cores), and the providers of data, the cache subsystem (and memory etc). Bigger caches that would be required by more cores in order to keep the "usefulness" of the design in balance, would lead to higher power consumption, which a) is a primary criterium of evaluation of the product such as laptops, e…

Also could it be that bigger caches would require more coherence-logic (or even a more complicated/congested cache-bus), making everything slower, and eventually negating the advantage of more cores?

Re: Ask HN: Why are modern Intel CPUs not getting a lot more cores?

#8
I agree with the "less core but faster processors are what is most useful on desktops".

But I ask, has anyone one or any language made the number of processors/hyperthreads transparent? Ideally I would just create a thread and some load balancing system would distribute it to the correct processor. Am I just behind the times?

Re: Ask HN: Why are modern Intel CPUs not getting a lot more cores?

#9
1) Nobody writes multi-threaded code

For user applications multi-threading is overkill. It's hard to write, and there are very little benefits the average user will see. Good concurrency isn't even that important on servers. You can trash your cache and interrupt tables but you'll still handle 10million clients per node so nobody cares. Great concurrency is really only practiced in HFT and HPC.

2) Modern hardware/OS's suck at multithreading:

IO interrupts are normally handled on 1 core. While you process data on any core. This causes some non-trivial caching issues. Furthermore putting 2 10GBE nic's on the same core can prevent you from actually using all 20GBE of bandwidth you have because the processor literally isn't fast enough. Then you need to set affinity for epoll thread, etc. etc.

3) Amdahl's Law: https://en.wikipedia.org/wiki/Amdahl%27s_law

Every time you double the number of execution units, even if your calculation gets twice as fast, the improvement factor constantly decreases. Take for example a 60 second calculation that can be fully parallelized

       1 units: 60sec
       2 units: 30sec
       4 units: 15sec
       8 units: 7.5s
       16 unit: 3.75s 
       32 unit: 1.87s
The transitions between 8-16-32 really show you the effect coming into play. Yes the calculation is being done faster. But the overall change from 8 to 32 units saves you ~5.63seconds, while using 4x the resources.

Re: Ask HN: Why are modern Intel CPUs not getting a lot more cores?

#10

I agree with the "less core but faster processors are what is most useful on desktops". But I ask, has anyone one or any language made the number of processors/hyperthreads transparent? Ideally I would just create a thread and some load balancing system would distribute it to the correct processor. Am I just behind the times?

On a small number of cores Erlang does this. That's why actors can be in the thousands and still performant.
Post reply on HN