The Joel on Software Discussion Group (CLOSED)

A place to discuss Joel on Software. Now closed.

This community works best when people use their real names. Please register for a free account.

Other Groups:
Joel on Software
Business of Software
Design of Software (CLOSED)
.NET Questions (CLOSED)
TechInterview.org
CityDesk
FogBugz
Fog Creek Copilot


The Old Forum


Your hosts:
Albert D. Kallal
Li-Fan Chen
Stephen Jones

Multi-core Vs. Multiprocessor, the advantage?

I've been reading recently that Intel is giving up on higher clock speeds and will attain better performance via multicore CPUs.  What is the advantage of this over just more than one processor?  I read one explanation that having multiple cores on a single chip with a single plug would be cheaper and more flexible.  It seems to me that this fails to take into account the cost of designing new chips.  Would a new dual core chip running the equivalent of two 2 Ghz chips be faster than just a system with two 2 Ghz chips?
name withheld out of cowardice
Tuesday, December 21, 2004
 
 
Shorter distance between processors could make inter-processor communication faster.
Aaron F Stanton Send private email
Tuesday, December 21, 2004
 
 
I could be wrong but if you are just designing single chips for use in dual proc systems, then you have to take the motherboard into account.  i.e. there is probably some standard set up between the motherboard and the CPUs.

But if you're designing 2 chips together then it eliminates this variable in the design.
Roose Send private email
Tuesday, December 21, 2004
 
 
From a hardware perspective, it will be interesting to see how this shapes up.  The big design issue is how to handle memory.  Will there be shared memory?  How is caching handled?  What will the memory control look like?

The overall performance advantage will undoubtably come from the memory architecture in Multi-core designs.

From a software perspective, I doubt there will be a real short term impact.
Designs Chips for a living, but loves software Send private email
Tuesday, December 21, 2004
 
 
It depends on the application.

Intel's mx2 modules are two Itanium cores on a single chip. The two cores share a cache. This means, if you are running two different applications, one per core, that are both memory intensive, you could potentially get crappy performance. You will be thrashing the cache as the two applications will not share locality of reference, and you will be stressing your VM subsystem since the two apps will not have the same working set.

If you are running a single application that was written with SMP in mind, you could get great performance. For instance, the I-cache may see fewer misses. Additionally, if the two instances of the app need to talk to each other, they don't need to go out over the system bus, which will save you many nanoseconds of latency.

The biggest win of multicore is higher density compute power. You can double your compute power for a small incremental increase in your data center overhead (think of leasing/purchasing extra floor space, cooling needs, more machines to manage, etc.).

/Alex
Alex Chiang Send private email
Tuesday, December 21, 2004
 
 
The advantage to Intel is cost.  A multicore chip is a single chip with shared resources, so the cost of a 2-core chip is less than the cost of 2 chips.

Plus I think there may be architectural and OS-related benefits too.  This was explained to me last year by several Intel engineers, but I forgot most of it.

I think in a multi-core system the hardware marshalls the resources whereas a mult-processor system relies on the OS more to marshall the resources.  By implementing a multi-core processor, most of the performance benefits remain within Intel's control.

[Disclaimer: again, this may be accurate, or it may be the twisted interpretation of my fading memory.]
Yet another anon
Tuesday, December 21, 2004
 
 
The performance and the software side of things should really be about the same. While in Intel's case the cores might benefit from being "closer" together (cache snooping etc.), they are still going to be limited by the shared memory bus (at least in the short term). This is going to limit scalability for Intel - think about 2 dual-core Xeons accessing RAM with the same old dual-channel memory  controller that the (single-core!) P4 is using. IMHO, AMD has the better cards here, since their memory controllers are integrated, so you get an additional dual-channel controller for each new socket.
The main advantage is that the infrastructure is cheaper, since a single-CPU board with a dual-core CPU is going to cost less than a dual board with 2 single-core CPUs, and this is even more true once you get to 4 CPUs vs. 2 dual core CPUs. Besides, nobody knows really what to do with all the die space that you get in 90nm technology and beyond ;-)
Martin Lehmann Send private email
Tuesday, December 21, 2004
 
 
Also, from a software licensing POV, MS does not consider a multicore processor as 2 processors.  This will provide significant savings and / or increased performance without additional licensing costs.
Pete
Tuesday, December 21, 2004
 
 
Pete ... I am not convinced that "significant" is the best description.  There will certainly be performance benefits, but like anything else in high-performance processor design there are a lot of trade-off's.  In the case of Multi-core designs, the memory architecture and grainularity of processing (?threads or finer grained) will determine the performance benefits.

My bet is we will continue to see performance gains comparable to what have seen up to now with just increases in clock speed - maybe just a bit more.  Although I am certainly not saying we *won't* see a significant jump in performance, I think it is more likely we will just continue to see a steady increase. 

Also, I think that we might see more differentiation between target markets for processor variations.  One multi-core processor may be oriented to transaction processing based on it's memory controller, and another with the same basic cores might be oriented to multi-media based on a different memory controller.

In the end I suppose we will have to just wait and see - it will certainly be interesting.
Designs Chips for a living, but loves software Send private email
Tuesday, December 21, 2004
 
 
In the embedded world I am excited to see multi-core designs comming out. It sucks to buy multiple CPUs.

I think the high tolerances for top-end CPUs make it more expensive. It's easier to make a chip with more lower tolerance parts.

In a system design that's often fine. We can assign the processors to do various work as long as they use a high speed interconnect.
son of parnas
Tuesday, December 21, 2004
 
 
"Significant" was in reference to the cost savings on MS product licenses not performance.  However, I would expect performance gains to be significant as well, much like the gains to be had from single to multi proc systems today; which can be over 80% depending on the application and usage.  Two way multi core systems would be similar to 4 way systems which are now rarely used outside of server environments and carry large price premiums.  It would be nice to see 4 way configurations pushed down to the workstation level where 2 ways systems sit now, dual multicore adoption should accomplish this.
Pete
Tuesday, December 21, 2004
 
 
Er, they have been preparing us for this already, in the form of HyperThreading. I am sure multi-core chips will look just like HyperThreaded chips, only with two "real" CPUs rather than two "virtual" CPUs.
Dan Maas
Wednesday, December 22, 2004
 
 
Pete ... In this case the comparison between multi-processor motherboards and mutli-core chips may not be appropriate.  On a motherboard there is a lot more space for interconnect and more chips (i.e. memory control & more SDRAM/RDRAM etc).  With a multi-chip module, the design will be I/O constrained from a pin standpoint.  So the memory interface will almost certainly be shared between the two cores (e.g. bottleneck).

As I mentioned before, it may be that we will see chips more oriented to specific applications.  In that case specific target application types *could* see significant performance increases (think Mac G4/G5 with vector processing unit).  However, averaged over general desktop tasks I doubt you will see a price/performance jump that would really stand out over the simple increase in clock rates.

In fact, as a previous poster pointed out, it is likely embedded or custom applications that make *specific* use of the multiple cores that benefit most.  Having said all this, please bear in mind that I am not saying you are wrong - I could be all wet - I just think that it is too early to make predictions of *large* increases in realizable performance.  On the other hand - I do design multi-core processors for a living - so maybe I am totally right after all!  ;)
Designs Chips for a living, but loves software Send private email
Wednesday, December 22, 2004
 
 
I think, on some level, that both of these strategies are inevitable, once we finally hit the ceiling of how small a transistor can be.  And multi-core processors are a further extension of the process shrink.  Your die size tends to fall in a reasonable range -- too big and it's too hard to fabricate, too small and somebody will make something better with a larger die size.  Remember in the days of the on-chip L2 cache, where you suddenly had 256k of really-fast L2 cache instead of 512k of half-speed L2 cache and it was still usually faster?
Flamebait Sr.
Wednesday, December 22, 2004
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
 
Powered by FogBugz