Ask HN: Why are modern Intel CPUs not getting a lot more cores?
1–10 of 71 posts
Re: Ask HN: Why are modern Intel CPUs not getting a lot more cores?
#2So 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?
#3Re: Ask HN: Why are modern Intel CPUs not getting a lot more cores?
#4Because 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…
Re: Ask HN: Why are modern Intel CPUs not getting a lot more cores?
#5Because 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.
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?
#6Bigger 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?
#7A 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…
Re: Ask HN: Why are modern Intel CPUs not getting a lot more cores?
#8But 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?
#9For 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?
#10I 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?