BCA/MCA - Types of Parallel Processor Systems (Computer Architecture)
Parallel Processing Systems are designed to speed up the programs execution by dividing the program into multiple parts and process these parts simultaneously. In general, parallel systems performs the simultaneous use of multiple computer resources by a number of computers thus forming a parallel processing cluster.
Flynn proposed, for the first time, categorisation of computer systems with parallel processing capability. He proposed the following categories:
① Single instruction, single data (SISD) stream:
A single processor executes a single instruction stream to operate on data stored in a single memory. Uniprocessors fall into this category
② Single instruction, multiple data (SIMD) stream:
A single machine instruction controls the simultaneous execution of a number of processing elements on a lockstep basis. Each processing element has an associated data memory, so that each instruction is executed on a different set of data by the different processors. Vector and array processors fall into this category.
③ Multiple instruction, single data (MISD) stream:
A sequence of data is transmitted to a set of processors, each of which executes a different instruction sequence. This structure is not commercially implemented.
④ Multiple instruction, multiple data (MIMD) stream:
A set of processors simultaneously execute different instruction sequences on different data sets. SMPs (symmetric multiprocessor), clusters, and NUMA (nonuniform memory access) systems fit into this category.