Historical Developments

The idea of using a multiplicity of serial arithmetic units to achieve high performance was mooted as early as 1958 when Unger published a paper entitled "A computer oriented towards spatial problems" [1], from which the first array processor, SOLOMON, was developed [2]. The SOLOMON design consisted of a two-dimensional array of 32 x 32 processing elements (PEs), each of which had 128 32-bit words of store and a bit-serial arithmetic unit. All PEs acted in unison, under the control of a single stream of broadcast instructions. Further advances in technology led to the production of integrated circuits and it became possible to build systems of ever greater complexity, without increasing the component count, and without decreasing reliability or increasing the power requirements. The ideas from SOLOMON, for example, were carried forward into several important high-performance architectures including the ILLIAC IV [3], the Burroughs Scientific Processor [4], the Goodyear Aerospace MPP [5], STARAN [6], and the ICL Distributed Array Processor (DAP) [7].

The DAP, first successful commercial exploitation of this style of architecture, was originally sold as an add-on to an ICL mainframe. With the advent of high-performance personal workstations, ICL devolved responsibiity for the DAP to a spin-off company (AMT) which developed workstation plug-in versions of the DAP. The AMT DAP/CP8 range included an 8-bit co-processor with each PE. This change represented an evolution from an SIMDSE system to an SIMDPE system. Each of the 8-bit co-processors had its own 256-bit memory and data was exchanged with data in the main array through store-to-store transfers. AMT was later taken over by Cambridge Parallel Processors (CPP), which ceased trading in 2004.

The Connection Machine [8], produced commercially by Thinking Machines Corporation (TMC), represented a further evolutionary step embodying the integration of several processing elements on to a single chip, and the consequent production of a massively parallel system. In a further departure from the conventional view of array processors as providers of high performance numerical facilities, the CM-1 was aimed at the AI/symbolic processing market, for which Lisp was the language of choice. However, TMC soon perceived the need to address the computationally intensive (and FORTRAN based) scientific market, so the CM-2 series had a floating-point capability and a FORTRAN compiler. The CM-2 was followed by the CM-5 but despite considerable support from the US govenment, and an appearance in Jurasic Park, the Connection Machines were not sufficiently successful commercially and Thinking Machines ceased trading in 1993.

Although none of these pioneering machines is still in use, the SIMD array processing techniques they embodied can be found today in mobile phones [9] and high-performance Graphics Processing Units [10].