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."
Why not try 4?
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.
The article refers to the system as "asymmetric" in a few places. This is not the case: SMP refers to a situation where all CPUs run a kernel, and each CPU schedules jobs for itself. In an AMP situation, one CPU is the "master" and the others are "slaves" which are scheduled, have interrupts and system calls managed by, and are otherwise controlled by the "master" CPU. It's possible to have an SMP tri-core system, and an AMP dual-core system.
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.
The industry needs to standardize or at least agree on an optimal number of cores. What good is 2, 3, n # of cores if software doesn't support it?
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."
We have tested a car with three tires instead of four. Does it work? Well, yes, when it's not crashing.
This is got to be one of the most pointless experiments ever done. Does it work? Yes it works when it's design to work, like the XBox 360. SMP stands for SYMETRICAL MULTIPROCESSOR. A dual core and a single core are not symetrical
please excuse my apathy
...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.
You mean to say that the TEST COMPUTER was not meant to be set up this way. Just as it's only by convention that computers use binary (they could use any imaginable base representation), it's only by convention that easily-obtainable computers use processors in groups that are integer powers of two. There's no physical reason why a computer could not be built that used an odd number of processors very well, it's just that the one used for the test was not meant for it.
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.
It may be 1% today.
It will most likely be 25% in 12 months. Well, 90% if you count PS3 and Xbox 360.
Trust me, current games under development for release mid-2006 or later are looking at this (as are everyone developing anything for future consoles). They have to - competition will pwn their ass with much shinyer games that take advantage of the extra hardware, and their product will look dated if they don't do the same thing.
Due to long development times, most of the games out now do not benefit, but that will change - rapidly. We've already seen first ones that clearly benefit (City of Villains uses and benefits noticeably, assuming your videcard is modern enough so it's not limited by it).
I've worked on a handful of multithreaded pc game myself too, but it was basically single threaded with a handfull of little threads just to handle network calls for unlocking the game via the internet and other "out of game" admin stuff like that. i doubt that the game would get any performace gain from running on a multi-core.
Just as it's only by convention that computers use binary (they could use any imaginable base representation)
Not so fast there. If you tried to build a base-3 computer you'd have some much more difficult problems on your hands in terms of the actual hardware, which would have to deal with three possible levels instead of two. Needless to say, that would complicate things tremendously and probably lead to more error as devices had to deal with three input/output signal ranges. Yeah, it's a convention that computers use binary but it's a convention with a good reason (a stronger reason, certainly, than that of the arabic base-10 number system, though that's not a bad reason at all).
If you're talking about software's use of binary, I think that makes a lot of sense too. The only time you really commonly see binary or hexidecimal these days is when you're working with memory addresses. In a 32-bit address space, it's nice to know that any number that fits in 8 hex digits is within the range of addresses (which is much easier than remembering some number that's approximately 4 billion but a little more), and using binary or hex makes bitwise operations like masking much easier (i.e. 0x00FF AND 0x1189 is 0x0089; in decimal that's 255 AND 4489 is 137). The reason it's easier is that each hex digit always represents exactly 4 binary digits, while a given decimal digit's value can depend on every binary digit in the number. So as long as we're on binary hardware, we're going to have lots of use for binary and hex in software.
As far as number of processors go... there's really no reason that three processors wouldn't work. Things like processors are typically added in powers of two, however... one reason is probably that it takes 2 bits to address 3 processors, and also 2 bits to address 4 processors. That is, that it often takes a much bigger architectural change to cross a power-of-two boundary (2 to 3, or 8 to 9) than to fill up to a power of two (3 to 4, or 9 to 16).
And as for the computer being tested, many dual-CPU setups like to have the exact same processor in both slots. I would go so far as to say that the vast majority of dual-CPU systems are this way, whether the motherboard likes it or not. This system uses two CPUs with 3 total cores; to the board and to the software this looks like two different types of CPUs, a setup that it might not handle so well. In this sense, it is that this particular test computer doesn't deal with the asymmetry well.
This may be my lack of knowledge about computer engineering (despite my CS degree ;)), but how would we use any representation other than binary? Do we have transistor logic that can do base three, or any other base? Isn't it all based on logic gates, which are inherently binary?
While there are numerous very good reasons for computers to use binary, it is not impossible to build a computer that use, say, base three or any other low base for that matter. On the transistor level there is no such thing as 1 and 0, only voltages, and while an engineer designing a logic circuit will usually define a few volts to mean 1 and no voltage to mean 0, it is quite possible to define 2 * a few volts to be 2 and go ahead and design a base three circuit - take a look at this for more info on base three computing (google's cache of it since the site appears to be down).
I still believe that there are good reasons that contemporary computers use base two - a lot of things become simpler when you don't have to worry about multiple voltage levels, only wether it's "a few volts" or "about zero volts."
And once you've finished reading up on base three computers, there's always more interesting stuff to read on the net.
There are 110 types of people in the world - those who grok negabin and those who don't
Your honor, this may *seem* offtopic at first, but I do have a point to make.
I think that the Open Source community has proven that anything will work given enough engineering hours. Case and point; I was at Phreaknic many moons ago and saw a TRS-80 running Debian. Yay!... but now what? Would you use your Debian-laced TRS-80 to do someting? (not knockin' it.. it was actually pretty cool, but it's a pertinent example towards my point)
Just as Debian was able to be loaded on the TRS-80, a tri-core setup will, in all likelyhood, benchmark better than a dual setup assuming that the tri-core configuration can be stabilized (which I don't doubt is possible) and the application(s) are optimized for multiple processors. Ok, by proving that, what have we accomplished? 3 are better than 2? Of course 3 are better than 2. I personally think that a *good* question to ask would be: Are there advantages to using 3 versus 4? Or what advantages could you leverage from a 2 + 1 configuration?
Bottom line: Did you really have to do an experiment to test that?
Seems like one of those "chickens prefer beautiful humans" research projects. Google it; the research project is there.
This message was posted using recycled electrons.
Most computers these days have an odd number of CPUs...
does it really count as a core if it's not general-purpose? I mean, it's literally a core, but they don't even call it a processor, it's an "element".
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"