Algorithms and Languages

Computer control

Distributed Systems

Data and Memory

SIMD/MIMD

Single/Multiple Instruction

Synch/Comm

Synchronization Communication

Links


The Professor
Gita

Gita's home page

The Class

Single Instruction - Multiple Data

(SIMD) computers were the first systems to be implemented with a massive amount of processors, and were among the first systems to provide computational power above the GFLOP range. A machine in which many data items are operated upon simultaneously by the same data manipulations is thus classified as an SIMD machine. This rather general classification encompasses a wide variety of systems, all of which have some operational elements that synchronously execute identical computations on differing data items. Many supercomputers utilize the SIMD principle of operation. To efficiently process vectors and matrices, they employ vector processing units in which multiple arithmetic units (e.g., floating-point processors) operate on a large number of data items simultaneously.

To provide a convenient user interface for program development, debugging, and graphical display, most SIMD systems utilize a conventional computer, e.g., a UNIX workstation, as a front end. For execution, programs are downloaded from the front end to the ACU, and data may be downloaded via a separate I/O device, e.g., a disk array, to the processor array. The ACU then begins program execution and broadcasts SIMD instructions for the processors via the broadcast bus.

You can read about some example SIMD architectures, or if you prefer recent research information on this style of parallel computer design, and actual hardware examples, please see this SIMD table.

For an applet example that could make use of such a design, please see this page that illustrates its application to matrix multiplication.



Home Page | Gita | Students | Algorithms | Communication | Distributed
Links | MIMD | Omega | Shared Memory | SIMD | Software | Synchro