tags:

views:

94

answers:

3

what is the difference between parallel processing and multi core processing

+4  A: 

Parallel processing can be done inside a single core with multiple threads.

Multi-Core processing means distributing those threads to make use of the multiple cores in a CPU.

Justin Niessner
Strictly speaking isn't the single core multithreaded application still doing things in a sequence on the hardware level?
Matti
yes, but the synchronization techniques used are the same techniques you would use if you had really many cores
Vinko Vrsalovic
+6  A: 

Parallel processing refers to having multiple units of execution (threads or processes) that are interleaved. This can happen in either in a single core CPU or in many cores/CPUs or even in many machines (clusters).

Multi core processing refers to having multiple units of execution that are actually executed in a CPU with many cores, where execution can happen at the same time, one or more unit in each core.

So multicore is a subset of parallel and parallel is itself a subset of distributed systems or distributed computing.

Vinko Vrsalovic
+2  A: 

Parallel processing just refers to a program running more than 1 part simultaneously, usually with the different parts communicating in some way. This might be on multiple cores, multiple threads on one core (which is really simulated parallel processing), multiple CPUs, or even multiple machines.

Multicore processing is usually a subset of parallel processing.

Multicore processing means code working on more than one "core" of a single CPU chip. A core is like a little processor within a processor. So making code work for multicore processing will nearly always be talking about the parallelization aspect (though would also include removing any core specific assumptions, which you shouldn't normally have anyway).

As far as an algorithm design goes, if it is correct in a parallel processing point of view, it will be correct multicore.

However, if you need to optimise your code to get it to run as fast as possible "in parallel" then the differences between multicore, multi-cpu, multi-machine, or vectorised will make a big difference.

Nick Fortescue
Well said, and all of this is a subset of the 'Distributed systems' area of CS.
Vinko Vrsalovic
And I'd say the difference between multicore and multicpu is very thin, optimization wise (if we're talking about the same architecture)
Vinko Vrsalovic
True, but there can be differences, especially if you get down to cache size based optimisations (which you occasionally do, for example in intense crypto applications)
Nick Fortescue