Multi Processing and Parallel Processing
What is the difference between ?
One way I see it as
Multiprocessing: Way to run more then one process at a given time. Think of it as being able to run 10 different programs on windows at the same time. Or having 10 apps open on your phone at a given time. Running more than one process or program on SINGLE processor.
- Each process allocates separate memory area.
- Process is heavyweight.
- Cost of communication is high.
Parallel Processing: Being able to run MULTIPLE processor at a given time. Think of it as running 10 different processor to compute answer to a single complex problem quickly. (Like a problem that can take 10 hours to solve on single processor, can be solved in 1 hour using 10 processor working Parallel. )
- Thread shares same address space.
- Thread are lightweight.
- Cost of communication between thread is low.