Parallel Computer Hardware

Introduction

Networks of workstations, massively parallel supercomputers, and multiprocessor workstations are just a few of the dozens of different parallel architectures. We need to get a handle on all of these architectures without making a career out of the analysis. To turn this into a manageable task, we will organize parallel systems into a coherent and simple taxonomy.

Our primary interest in parallel computer taxonomies is to help us understand the pertinent issues raised by parallel computer hardware. An additional motivation, however, is to support completeness arguments. To make an argument about the general applicability of a technology (e.g. an algorithm or a programming model), you need some way to quantify completeness. By analyzing the technology against each leaf in a complete taxonomy, you can quantify completeness.

Flynn's Taxonomy

By far the most commonly used taxonomy is that due to Flynn [Flynn]. He categorizes all computers according to how many instruction streams and data streams they can be said to have. In Flynn's taxonomy, there are four possibilities:

The advantage of the Flynn taxonomy is that it is very well established. Every parallel programmer is familiar with the terms MIMD and SIMD. It also meets most of our other criteria.

There are, however, some serious problems with Flynn's system. The biggest problem is that he only provides four slots to plug systems into. This granularity doesn't give us enough ways to separate systems. The problem is further exacerbated by the inapplicability of MISD and the demise of SIMD systems. In some ways, Flynn's system is akin to dividing all computers into the two categories, parallel and sequential.

Our Parallel Hardware Taxonomy

Unfortunately, computer scientists haven't converged on a single taxonomy for parallel computers. The only consensus is to use Flynn's taxonomy [Flynn72] as a starting point. There also seems to be wide agreement on the following additional points:

For most cases, this is enough. When it is necessary to break it down further, there is no clear consensus. We propose the following approach:

This results in the following taxonomy of parallel systems:

To help us make sense of this taxonomy, here are some examples of common systems mapped onto the taxonomy.

SIMD

MIMD

 

Shared Memory

Distributed Memory

 

SMP

NUMA

DSM

Scalable

Linear

Fixed

CM-2

Sequent

Exemplar

BBN

iPSC/860

Paragon

Ethernet Cluster

MasPar

4-PPRO

 

SCI-Cluster

Ncube

SP2

 

 

Tera

 

KSR