PARALLEL COMPUTING

Parallel execution increases the overall throughput of a program enabling to break down large tasks to accomplish them faster or to accomplish more task in a certain time. Web search engines that process millions of requests every second has parallel programming in it. Parallel programming needs parallel hardware along with multiple processor to execute different parts of the program at the same time .


Flynn's Taxonomy

Flynn's Taxonomy classifies parallel computer architecture on the basis of :

1. Instruction Stream (control stream)
2. Data Stream

Thereby classifying parallel computers into 4 parts:-

1. Single Instruction Single Data.
2. Single Instruction Multiple Data.
3. Multiple Instruction Single Data.
4. Multiple Instruction Multiple Data.


Memory Architecture

1. Shared Memory:-
Here all processors access same memory with global address space. Change in the memory by one processor is visible to others. It is further classified into :-

1) UNIFORM MEMORY ACCESS
2) NON-UNIFORM MEMORY ACCESS

2. Distributive Memory Access:-
Here each processor has its own local memory , with its own address space.Each processor works independently.


THREAD

Smaller processes (sub-elememts) within the process working over different task are known as threads. Though thread has independent path of execution but then can only exits as a part of process.
Threads within a process shares same address space , code and data .

Inter-process communication

1. Sockets and pipes.
2. Remote procedure calls
3. Shared Memory.