I wonder what's the difference between a dual core computer and a computer with 2 processors on the mother board.. I think it's something related with the threads but a I don't understand it very well..

5 Answers
5

Multiple processors let your computer do literally two things at once (instead of only seemingly doing two things at once, but actually just swapping between tasks extremely rapidly).

Multiple cores are the same. The advantage of multiple cores over multiple processors is that they share some bits of the CPU, e.g. the second level cache, which makes it possible for them to work even more efficiently if they have some shared data. This makes them much cheaper to manufacture. A single dual-core CPU also takes up less room than two single-core CPUs, which is an important factor these days with everyone moving to laptops.

There may be some performance differences, but nothing you're likely to notice.

Well, it's about scaling horizontally instead of vertically. In the old days they used to make CPU's faster and faster. Over time the speed of CPU's increased from only a handfull of megahertz to super speeds ranging up to 3 gigahertz. However, when the 3 gigahertz speed was reached CPU makers had found a limit to how far they could push the speed on a single CPU core.

While this speed race was happening, for those applications that needed more power (like servers and CGI render farms), the multi-socket CPU motherboards where introduced. This allowed to be more than one CPU (usually two) to be placed on the motherboard. Operating systems that where able to utilize multiple CPU's at once could run software that took advantage of this feature by distributing load over those two CPU's, therefore increasing execution speed.

Fast forward to present day. The CPU speed limit is somewhat reached and instead of scaling vertically (making it faster), CPU manufactures are starting to scale horizontally by placing multiple cores on a single chip. Currently dual core chips are very common and soon the quad cores will be the standard. Now imagine that you'd placed two quad cores on a single motherboard. This would mean that the operating system would have access to 8 CPU's, all running at around 3 gigahertz.

Besides multi-core CPU's there is also a 'fake' dual core CPU that uses a technology known as 'hyper-threading'. With hyper-threading the CPU emulates the presence two CPU's when there is in reality only one actual core present. The CPU knows how to make use of what would normally be down time by scheduling instructions in a specific way, gaining more efficiency.

-1: This answer has many inaccuracies. (1) 3 GHz is not a "speed limit" there are processors which run at higher frequencies than 3 GHz. The limit CPU manufacturer's ran into was fitting higher performance processors within a sustainable power envelope. (2) Your second paragraph implies that multi-CPU motherboards were introduced because the "speed limit" had been reached. In fact, multi-socket motherboards were around 5-10 years before (maybe even longer, I can't find an exact date when PC servers went multi-core).
–
hanleypJul 26 '09 at 16:01

I know it's not 100% correct and I've tried to keep my answer in layman's terms. It's just a dumbed down version so people sort of understand what the difference is. I'm sure that when people really want to know the ins and outs they will investigate more for them selfs. Paragraph 2 starts with "In the meantime" meaning while CPU's where being made faster multi-socket CPU motherboards where created (which is about 10 years ago).
–
LukeJul 26 '09 at 20:53

That's cool. I just wanted to point out what I think needed clarification. I'll undo my vote down, but can't unless you edit the answer somehow.
–
hanleypJul 26 '09 at 20:56

I'm happy to make changes but what exactly do you want me to change? That there are CPU's that go up to 3.2 gigahertz or maybe a bit higher? Can you please clarify?
–
LukeJul 26 '09 at 23:10

2

-1: You explain why we're seeing multicore systems, but that's not what the questioner asked. You haven't explained the difference between a multiple cores and multiple processors.
–
John FouhyJul 27 '09 at 2:56

From a software development perspective there is relatively little difference.

Some incorrectly written multi-threaded applications may accidentally work on a multi-core processor, but not on a multi-processor motherboard, but I would not lose too much sleep over that, since... well... we're talking incorrectly written software.

The main difference between the two scenarios for the same total number of available cores (for example, 1x 4-core processor vs. 2x 2-core processor) is that in the case of the multi-processor scenario there is typically a larger aggregate memory-bandwidth. This means that for any workload that is memory intensive you may be better off with the latter. Note however that locking primitives may actually be a bit slower (depending on hardware implementation) so algorithms that use a lot of synchronisation may actually perform worse on the latter.

Even so, I would not worry too much about the difference even then, because if you work in an area where this difference matters then you'd most likely already know about it (domain-specific knowledge).