Architecture of Parallel Computing
Architecture of Parallel Computing
Parallel Computing:
In the simplest sense, parallel computing is the simultaneous use of multiple compute resources
to solve a computational problem:
Named after the Hungarian mathematician/genius John von Neumann who first authored the
general requirements for an electronic computer in his 1945 papers. Also known as "stored-
program computer" - both program instructions and data are kept in electronic memory. Differs
from earlier computers which were programmed through "hard wiring". Since then, virtually all
computers have followed this basic design:
1
Input/output is the interface to the human operator.
There are different ways to classify parallel computers. One of the more widely used
classifications, in use since 1966, is called Flynn's Taxonomy. Flynn's taxonomy distinguishes
multi-processor computer architectures according to how they can be classified along the two
independent dimensions of Instruction Stream and Data Stream. Each of these dimensions can
have only one of two possible states: Single or Multiple. The matrix below defines the 4 possible
classifications according to Flynn:
2
Single Instruction, Multiple Data (SIMD):
3
Dataflow Architecture: In data flow architecture nodes and edges are used. Nodes define
the operation or task to be performed and edge defines the data dependency
relationship. Suppose this equation will be processed as a*b+ c*d
4
Decode instruction will work after fetch instruction and decode the instruction and then
execute it.
Special Purpose Architecture: These are the type of processors that are designed for
special purposes like super computers which requires billions of processes to be done in
very less time period.
These are also further divided into two categories
o Asynchronous Architecture:
In this type of architecture all processes perform different operations so it
has further two architectures
Bus: In this type of architecture, processor share data with memory
through shared bus
5
o Systolic Architecture: In this type of architecture processors are in the form of an
array. Every processor in this array performs some kind of operation and pass it
on to the next processor to perform next operation and then data is being stored
in the memory.