The On Demand Global Workforce - oDesk Saifur Rahman: Flynn's taxonomy

Pages

Saturday, August 15, 2009

Flynn's taxonomy

Flynn's taxonomy is a classification of computer architectures, proposed by Michael J. Flynn in 1996.

Parallel Computing Platforms

In order to achieve parallel execution in software, hardware must provide a platform that supports the simultaneous execution of multiple threads. Generally speaking, computer architectures can be classified by two different dimensions. The first dimension is the number of instruction streams that a particular computer architecture may be able to process at a single point in time. The second dimension is the number of data streams that can be processed at a single point in time. In this way, any given computing system can be described in terms of how instructions and data are processed. This classification system is known as Flynn’s taxonomy (Flynn, 1972), and is graphically depicted in the following Figure.


 


Figure : Flynn’s Taxonomy









Flynn’s taxonomy places computing platforms in one of four categories:


 


��A single instruction, single data (SISD) machine is a traditional sequential computer that provides no parallelism in hardware. Instructions are executed in a serial fashion. Only one data stream is processed by the CPU during a given clock cycle. Examples of
these platforms include older computers such as the original IBM PC, older mainframe computers, or many of the 8-bit home computers such as the Commodore 64 that were popular in the early 1980s.

 

��A multiple instruction, single data (MISD) machine is capable of processing a single data stream using multiple instruction streams simultaneously. In most cases, multiple instruction streams need multiple data streams to be useful, so this class of parallel
computer is generally used more as a theoretical model than a practical, mass-produced computing platform.

��A single instruction, multiple data (SIMD) machine is one in which a single
instruction stream has the ability to process multiple data streams simultaneously. These machines are useful in applications such as general digital signal processing, image
processing, and multimedia applications such as audio and video. Originally, supercomputers known as array processors or vector processors such as the Cray-1 provided SIMD processing capabilities. Almost all computers today implement some form of SIMD instruction set. Intel processors implement the MMX™,
Streaming SIMD Extensions (SSE), Streaming SIMD Extensions 2 (SSE2), and Streaming SIMD Extensions 3 (SSE3) instructions that are capable of processing multiple data elements in a single clock. The multiple data elements are stored in the floating point registers. PowerPC† processors have implemented the AltiVec
instruction set to provide SIMD support.

 

��A multiple instruction, multiple data (MIMD) machine is capable of is executing multiple instruction streams, while working on a separate and independent data stream. This is the most common parallel computing platform today. New multi-core platforms
such as the Intel® Core™ Duo processor fall into this category. Given that modern computing machines are either the SIMD or MIMD machines, software developers have the ability to exploit data-level and task level parallelism in software.

 

Flynn’s Taxonomy falls short in a number of ways:

• First, there appears to be no need for MISD machines.

• Second, parallelism is not homogeneous. This assumption ignores the contribution of specialized processors.

• Third, it provides no straightforward way to distinguish architectures of the MIMD category.

– One idea is to divide these systems into those that share memory, and those that don’t, as well as whether the interconnections are bus-based or switch-based.

• Symmetric multiprocessors (SMP) and massively parallel processors (MPP) are MIMD architectures that differ in how they use memory.

• SMP systems share the same memory and MPP do not.

• An easy way to distinguish SMP from MPP is: MPP ⇒ many processors + distributed memory + communication via network SMP ⇒ fewer processors + shared memory + communication via memory


• Other examples of MIMD architectures are found in distributed computing, where processing takes place collaboratively among networked computers.

– A network of workstations (NOW) uses otherwise idle systems to solve a problem.

– A collection of workstations (COW) is a NOW where one workstation coordinates the actions of the others.

– A dedicated cluster parallel computer (DCPC) is a group of workstations brought together to solve a specific problem.

– A pile of PCs (POPC) is a cluster of (usually) heterogeneous systems that form a dedicated parallel system

• Flynn’s Taxonomy has been expanded to include SPMD (single program, multiple data) architectures.

• Each SPMD processor has its own data set and program memory. Different nodes can execute different instructions within the same program using
instructions similar to: If myNodeNum = 1 do this, else do that

• Yet another idea missing from Flynn’s is whether the architecture is instruction driven or data driven.

No comments:

Post a Comment