Are three cores better than two?
Barbarian writes "That's the question that Tom's Hardware asked. They took a dual-cpu motherboard and stuck both a single and a dual core Opteron on the board, for a total of three cores. Does it work? Well, yes, when it's not crashing. It does raise the possibility of tri-core processors whilst we are waiting for the next die shrink."
The question can't be answered.
In some markets, hardware is released and only then does software take advantage of it. Sometimes software never takes advantage of the new hardware because of the complexity in writing code. I remember all the MMX and the like promotions, but I never really saw any evidence that it did anything.
In other markets, software is released and the hardware follows. I recall Quake (or was it Quake 2) and the rush months later to have a Voodoo SLI to boost framerates.
I am sure a 3-core processor could be "better" but only if the software to support it can be easily ported from the single core or dual core versions. Will software eventually be core-transparent because of a "xCore" abstraction layer? Will software be optimized properly for the ability to take advantage of the added cores?
I see the need for multitasking the processor side, but I also see the complexity in trying to differentiate all the different configurations a workstation may have. The more cores that are released, the more I see application-specific turn key solutions over "one version fits all." I also see the added costs in testing and developing, and who really knows if those costs lead to any savings by creating the additional cores.
That's the point of this post -- just because something increases efficiency in one sphere doesn't mean that there is an overall savings. There is no way to properly judge if the market will see a savings overall, and if it costs much more to produce/support/service the new product, it will fail. Nothing can stop that, not even great marketing.
Why would anyone even want to do this? Most dual proc systems are designed so that the CPUs must be the same for them to work properly. Sure, this configuration is a bit cheaper than using two dual core procs, but unless you have a space CPU sitting around I really don't see the point.
Lots of kids and grandmas are getting their hands on multi-core consoles within the next year (XBox 360 = 3 processors, PS3 = 8 processors, Nintendo Revolution = 2 processors maybe). So game authors are going to be figuring the 3+ core game out soon, and Microsoft and Sony are betting money on that fact.
These two processors do not only differ in the manufacturing process: Changes to the memory controller have been made during the transition from 130 to 90 nm and SSE3 extensions were added. Opteron 248 was designed for HT800 (200 MHz bus), while the Opteron 275 is capable of running HT1000. Finally, the cache size per core is different as well.
My guess is the crashing programs are detecting SSE3 and when a thread that uses it runs in the single core processor, the application is killed for trying an "illegal instruction."
...on Tom's multi-page reviews.
I hate sites where the article occupies less than 10% of the screen area.
Classical parallel programming tends to work well on powers of 2. One of the models for (big) parallel systems has the CPUs arranged in a hypercube structure, which works quite well for getting data to and from the processors. There are probably also advantages when it comes to laying out the cores on silicon.
For multitasking, there's really no need for a power of two, except to make the best use of bus lines (three bits to identify the CPU? Better to allow eight of them than four). Expecting two completely different processors to work well on a board designed for two identical ones is daft, though, and it's pretty obvious that the stability problems are due to this and not any inherent problem with having three cores.
Look what failed. Video compression programs, the type of code almost certain to use streaming SIMD operations.
Try this with two identical dual processors and you should get a nice 4-CPU machine.