3 ms·
I've got a question that I'd love for someone to provide feedback on. Is it the case that a multicore processor must have identical cores? Let's say there are
by scarmig 14y ago
I've got a question that I'd love for someone to provide feedback on. Is it the case that a multicore processor must have identical cores?
Let's say there are three tasks, A, B, and C. C depends on A and B, but A is 4x as costly as B. Adding more cores doesn't get around that inherently sequential part, so because of overhead and cost considerations it isn't worth it to parallelize. This applies to most computational tasks: as you add more cores, the effect of the sequential part dominates more and more and you get decreasing benefits.
But what if you have one beefy processor to deal with the heavily sequential parts, and a multitude of less impressive ones to deal with the easily parallelizable parts? Doesn't that give you the best of both worlds?
Is it technically infeasible for some reason?
- shin_lao 14y agoWhat do you mean by a "less beefy CPU"? Once you've been able to design the new CPU and test it, it doesn't make sense to have an older/slower design. You could reduce the cache, but it would probably more expensive to build. If one of your core is idle, the CPU will load it, if there is work to be done.
- bornhuetter 14y agoI think what scarmig is getting at is - wouldn't it be better to have 1 2ghz core and 3 1ghz cores, rather than 4 1.5 ghz cores. I don't know the answer myself, and would be interested if someone could clarify why Intel don't make quad cores with one core being faster than the others. My best guess is that it's hard to keep things in sync if you have different cores on different frequencies or multipliers.
- paol 14y agoYes, that is feasible and there are real systems that take that approach (millions of them in fact - look up the architecture of the Sony Playstation 3 console if you're curious). One problem that surfaces is that such asymmetric systems are harder to write software for, which can make them a bit unpopular.
- CookWithMe 14y agoActually, newer server CPUs have that, in a way. Each core is technically identical, but the performance is not always identical and can be dynamically adjusted. The most obvious example is dynamic overclocking, where one core (that ideally works on a sequential part) gets a higher frequency (the other cores are usually underclocked at the same time). Intel calls this Turbo Boost: http://en.wikipedia.org/wiki/Intel_Turbo_Boost http://en.wikipedia.org/wiki/Intel_Turbo_Boost In Hyper-Threading enabled cores, you also have varying performance per core, i.e. if one core only hosts one active thread that is CPU-bound the execution is faster than if one HT-core hosts two CPU-bound threads. So, it is technically feasible, but at the same time makes scheduling for the OS harder. Edit: And it also makes app performance less predictable. And it's one of the reasons why you need to run serious benchmarks more than a couple of times.
- Someone 14y agoIt is quite feasible. Historically, one could have multiple, different CPUs in one system: http://en.wikipedia.org/wiki/Asymmetric_multiprocessing http://en.wikipedia.org/wiki/Asymmetric_multiprocessing Nowadays, those CPUs can be on one chip: http://en.wikipedia.org/wiki/Heterogeneous_computing http://en.wikipedia.org/wiki/Heterogeneous_computing, http://en.wikibooks.org/wiki/Microprocessor_Design/Multi-Core_Systems#Asymmetric_Multicore http://en.wikibooks.org/wiki/Microprocessor_Design/Multi-Cor.... Also, if one builds an embedded CPU from building blocks, it is easy to put in small CPUs that perform tasks completely independent of the 'real' CPU. For example, there could be a tiny CPU that controls battery charging or tracks GPS. I do not know whether this really is done though; it could be more convenient to use of-the-shelf components for that because they are more suited for the job or because pin-outs typically are too great in demand.
- marshray 14y agoSounds like AMD may be planning to integrate an ARM on-die http://semiaccurate.com/2011/06/22/amd-and-arm-join-forces-at-last/ http://semiaccurate.com/2011/06/22/amd-and-arm-join-forces-a...