What's the difference between multicore proc and multiproc system?

18

9

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..

bAN

Posted 2009-07-26T08:48:45.183

Reputation: 1 646

Answers

19

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.

John Fouhy

Posted 2009-07-26T08:48:45.183

Reputation: 2 995

2Not just taking less room, but also generating less heat (using less power) and requiring only one cooling fan. – CarlF – 2011-08-17T15:06:37.033

13

See this image that shows the difference between Multi Processor, Hyper Threaded and Multi Core:

enter image description here

claws

Posted 2009-07-26T08:48:45.183

Reputation: 3 627

3

You should start with Multi-core and Multithread articles at Wikipedia.

nik

Posted 2009-07-26T08:48:45.183

Reputation: 50 788

1The link for "The Difference Between Multithreaded and Multicore Programming" is broken. – SparkAndShine – 2016-12-21T16:57:28.610

2

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.

Luke

Posted 2009-07-26T08:48:45.183

Reputation: 2 479

3-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). – hanleyp – 2009-07-26T16:01:38.017

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). – Luke – 2009-07-26T20:53:50.807

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. – hanleyp – 2009-07-26T20:56:20.910

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? – Luke – 2009-07-26T23:10:58.357

You don't have to change any content if you don't want to, I just can't vote it back up unless you edit something. – hanleyp – 2009-07-27T01:44:46.953

I rephrased it a bit here and there. Let me know if you find any other inconsistencies. – Luke – 2009-07-27T02:02:46.757

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 Fouhy – 2009-07-27T02:56:14.517

@John Fouhy: You might be right, but I think one has to do with the other. Understanding the difference between multiple cores and multiple processors has, in my opinion, still to do with scaling and one is simple an evolutionary step after the other. – Luke – 2009-08-01T05:14:21.167

+1 As I just started to dig into the subject I find your answer pretty helpful in letting me (and others probably) see the big picture and gain some confidence about it. While the answer might not be 100% accurate it does a good job at explaining at a very basic level why the processor makers shifted from a vertical scale to a horizontal. I also +1ed @hanleyp's comment for clarifying the limit issue. – Gabriel C. Troia – 2014-04-10T02:30:44.233

1

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).

jerryjvl

Posted 2009-07-26T08:48:45.183

Reputation: 2 505