The definition of a parallel computer can be confusing, but most people would agree that a parallel machine is one composed of several independent processors. Flynn [14] gives a coarse classification of parallel machines, where he analyzes the machines by the number of data streams and the number of different program streams processed at a given time. Vector machines such as the CRAY 1 and the IBM 3090VP [15] would not be considered parallel machines under our definition and are not of interest for the purpose of this paper. Of interest to our work are the single-instruction stream, multiple-data stream (SIMD) and the multiple-instruction stream, multiple-data stream (MIMD) architectures.