34

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

What is the difference between MultiCore and MultiProcessor please?

0

7 Answers 7

35

A CPU, or Central Processing Unit, is what is typically referred to as a processor. A processor contains many discrete parts within it, such as one or more memory caches for instructions and data, instruction decoders, and various types of execution units for performing arithmetic or logical operations.

A multiprocessor system contains more than one such CPU, allowing them to work in parallel. This is called SMP, or Symmetric MultiProcessing.

A multicore CPU has multiple execution cores on one CPU. Now, this can mean different things depending on the exact architecture, but it basically means that a certain subset of the CPU's components is duplicated, so that multiple "cores" can work in parallel on separate operations. This is called CMP, Chip-level Multiprocessing.

For example, a multicore processor may have a separate L1 cache and execution unit for each core, while it has a shared L2 cache for the entire processor. That means that while the processor has one big pool of slower cache, it has separate fast memory and artithmetic/logic units for each of several cores. This would allow each core to perform operations at the same time as the others.

There is an even further division, called SMT, Simultaneous Multithreading. This is where an even smaller subset of a processor's or core's componenets is duplicated. For example, an SMT core might have duplicate thread scheduling resources, so that the core looks like two separate "processors" to the operating system, even though it only has one set of execution units. One common implementation of this is Intel's Hyperthreading.

Thus, you could have a multiprocessor, multicore, multithreaded system. Something like two quad-core, hyperthreaded processors would give you 2x4x2 = 16 logical processors from the point of view of the operating system.

Different workloads benefit from different setups. A single threaded workload being done on a mostly single-purpose machine benefits from a very fast, single-core/cpu system. Workloads that benefit from highly-parallelized systems such as SMP/CMP/SMT setups include those that have lots of small parts that can be worked on simultaneously, or systems that are used for lots of things at once, such as a desktop being used to surf the web, play a Flash game, and watch a video all at once. In general, hardware these days is trending more and more toward highly parallel architectures, as most single CPU/core raw speeds are "fast enough" for common workloads across most models.

1
  • What about heat, which setup? If you cram much processors into one CPU housing, the heat is very concentrated on just one 'spot' and requires better cooling facilities, am I right? If this is true, why manufacturers stay with that design, only for costs? Or are there other problems to overcome when using seperated cores?
    – Codebeat
    Sep 5, 2017 at 21:17
23

Everyone gave enough explanations. Still if you don't understand. Have a look at this:

alt text

3
  • Two queries abt the picture you put up her 1)What is APIC 2)The diagram in the last row of cells, for Multicore and Multiprocessor(2 diagrams in the first and the third columns of the last row of the grid) seem to be same, except the dashed/solid lines/square boundaries aroudn the ALU. What to they mean?
    – goldenmean
    Nov 29, 2010 at 13:32
  • 2
    @goldenmean: 1. APIC is en.wikipedia.org/wiki/…, It is what receives interrupts from other devices and acts. I could explain more if you have some knowledge on internal workings of OperatingSystems 2) Well, solid line means that they are two different chips/dies like shown in the first row and dashed line shows they both are on a single chip or die
    – claws
    Nov 29, 2010 at 20:10
  • This should stated as "Have a look at this picture, still if you don't understand everyone gave enough explanations" Jul 8, 2016 at 15:53
3

From a desktop/laptop point-of-view, multiprocessor is having two of more separate CPUs in a machine.

Multi-core is having multiple processing cores on the same chip, essentially multiple CPUs on one bit of silicon. To be considered multi-core each core should be essentially a full CPU - the fact that even the earliest Pentium chips had multiple integer calculating units (allowing more more efficient pipelining) does not count.

You could of course have multiple-processor multi-core arrangement, with more than one multi-core processor in the same machine.

The pro and cons can be complicated as there are a lot of variables to consider, but some notable differences are:

  • cooling: a two core CPU will often produce less waste heat than two separate single core units of the same spec and will only require one heatsink and fan which is generally going to be cheaper (though all the heat is in one place, not spread over two, which may require higher-tech cooling solutions)
  • speed due to cache locality: being on the same chip there are opportunities to make L2 (or L3) cache coherency/sharing more efficient as the cores do not need to coordinate over a longer distance over an external memory bus
  • cost differences due to simplicity: the multi-core solution does not require multiple sockets on the motherboard and so forth
2

Multicore is multiple cores in just one die. Multiprocessors are multiple dies.

2

a multi-core processor contains two or more cores in one physical package.

a mutli-processor system is a system that contains more than one physical processor. each of those processors can contain multiple cores (as WoodE answered).

as for how they compare:
in a multi-core processor each of the cores are generally slower (in raw speed) than a fast single-core processor. Also, all of the cores in that processor share the same system bus and main memory. However, for most daily tasks this isn't a noticeable issue and for most users the system will feel faster as they are able to do more simple tasks at once.

in a multi-processor system performance will be increased in cases where there are multiple high intensity tasks being performed. depending on the motherboard this may be because each processor will have its own dedicated bus and/or main memory, allowing them to use the full capabilities of each for those tasks.

a multi-processor multi-core system would be a blending of the pros and cons of each.

Also, as more mutli-threaded programs (a program capable of telling the processor to work on more than one task at a time) are developed the dis-advantages of a multi-core processor will diminish.

1

In basic terms, a multicore processor is a single processor with multiple cores (quad-core has 4 cores, for example) where as a multiprocessor system contains more than one processor on the motherboard (which in turn can also be multicore).

When it comes to pros and cons of each it gets a little more complicated.

Edit: spelling correction.

1

to my knowledge, a core is inside of a processor, so multi-core would mean a single strong processor, multi processor is multiple processors on a motherboard (i figure to lower heating issues, or maybe even a shared payload equals to better performance) not sure, but from what i've read i figured that to be accurate

Not the answer you're looking for? Browse other questions tagged .