ICL Distributed Array Processor

Last updated

The Distributed Array Processor (DAP) produced by International Computers Limited (ICL) was the world's first commercial massively parallel computer. The original paper study was complete in 1972 and building of the prototype began in 1974. The first machine was delivered to Queen Mary College in 1979. [1]

Contents

Development

The initial 'Pilot DAP' was designed and implemented by Dr Stewart F Reddaway with the aid of David J Hunt and Peter M Flanders at the ICL Stevenage Labs. Their manager and a major contributor was John K Iliffe [2] who had designed the Basic Language Machine—he is well known nowadays for Iliffe vectors.

The ICL DAP had 64×64 single bit processing elements (PEs) with 4096 bits of storage per PE. It was attached to an ICL mainframe and its memory was mapped into the mainframe's memory. Programs for the DAP were written in DAP FORTRAN which was FORTRAN extended with 64×64 matrix and 64 element vector primitives. DAP Fortran compiled to an assembly language called APAL (Array Processor Assembly Language). The DAP had a single instruction, multiple data (SIMD) architecture. Each operation could be performed under the control of a mask which controlled which elements were affected. Array programs were executed as subroutines of normal mainframe FORTRAN programs and IO was handled by the mainframe.

Operationally, there was an overhead to transfer computational data into and out of the array, and problems which did not fit the 64×64 matrix imposed additional complexity to handle the boundaries (65×65 was perhaps the worst case!)—but for problems which suited the architecture, it could outperform the current Cray pipeline architectures by two orders of magnitude. The ICL 2980 was not a popular machine and this held back the use of the DAP as an attached processor was restricted initially to this one range.

The design as described in Reddaway's 1973 paper is pretty much that which was implemented in the first commercial version except the facility to supply address bits from the processing elements was removed. This change greatly simplified hardware error detection. A notable extra facility was carry propagation to simplify vector mode addition. [3]

After ICL

The DAP [IP] was sold off to a venture capital-funded start-up company Active Memory Technology (AMT) which was then taken over by Cambridge Parallel Processors (CPP). It was enhanced and made smaller and faster as the Gamma series. An 8-bit processor with some local 8-bit wide memory was added to the processor and fast IO capabilities were implemented. It could be programmed in either C++ or Fortran-Plus. These were more flexible than DAP FORTRAN, in particular they automatically took care of choosing a mapping from user specified matrix and vector bounds to the underlying hardware.

Sample DAPs are in storage at the Computer History Museum.

CPP ceased trading in 2004.

Mini-DAP and Mil-DAP

A smaller 32x32 version was created between 1984 and 1987. The commercial version was called the Mini-DAP, normally attached to a PERQ system (so was sometimes called the PERQ-DAP), and the ruggedised military version was called the Mil-DAP. [4]

See also

Related Research Articles

In computer science, an array is a data structure consisting of a collection of elements, of same memory size, each identified by at least one array index or key. An array is stored such that the position of each element can be computed from its index tuple by a mathematical formula. The simplest type of data structure is a linear array, also called one-dimensional array.

In computing, a vector processor or array processor is a central processing unit (CPU) that implements an instruction set where its instructions are designed to operate efficiently and effectively on large one-dimensional arrays of data called vectors. This is in contrast to scalar processors, whose instructions operate on single data items only, and in contrast to some of those same scalar processors having additional single instruction, multiple data (SIMD) or SWAR Arithmetic Units. Vector processors can greatly improve performance on certain workloads, notably numerical simulation and similar tasks. Vector processing techniques also operate in video-game console hardware and in graphics accelerators.

<span class="mw-page-title-main">Convex Computer</span> American computer manufacturer

Convex Computer Corporation was a company that developed, manufactured and marketed vector minisupercomputers and supercomputers for small-to-medium-sized businesses. Their later Exemplar series of parallel computing machines were based on the Hewlett-Packard (HP) PA-RISC microprocessors, and in 1995, HP bought the company. Exemplar machines were offered for sale by HP for some time, and Exemplar technology was used in HP's V-Class machines.

<span class="mw-page-title-main">Parallel computing</span> Programming paradigm in which many processes are executed simultaneously

Parallel computing is a type of computation in which many calculations or processes are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved at the same time. There are several different forms of parallel computing: bit-level, instruction-level, data, and task parallelism. Parallelism has long been employed in high-performance computing, but has gained broader interest due to the physical constraints preventing frequency scaling. As power consumption by computers has become a concern in recent years, parallel computing has become the dominant paradigm in computer architecture, mainly in the form of multi-core processors.

Message Passing Interface (MPI) is a standardized and portable message-passing standard designed to function on parallel computing architectures. The MPI standard defines the syntax and semantics of library routines that are useful to a wide range of users writing portable message-passing programs in C, C++, and Fortran. There are several open-source MPI implementations, which fostered the development of a parallel software industry, and encouraged development of portable and scalable large-scale parallel applications.

Flynn's taxonomy is a classification of computer architectures, proposed by Michael J. Flynn in 1966 and extended in 1972. The classification system has stuck, and it has been used as a tool in the design of modern processors and their functionalities. Since the rise of multiprocessing central processing units (CPUs), a multiprogramming context has evolved as an extension of the classification system. Vector processing, covered by Duncan's taxonomy, is missing from Flynn's work because the Cray-1 was released in 1977: Flynn's second paper was published in 1972.

<span class="mw-page-title-main">International Computers Limited</span> British computer company (1968-2002)

International Computers Limited (ICL) was a British computer hardware, computer software and computer services company that operated from 1968 until 2002. It was formed through a merger of International Computers and Tabulators (ICT), English Electric Computers (EEC) and Elliott Automation in 1968. The company's most successful product line was the ICL 2900 Series range of mainframe computers.

<span class="mw-page-title-main">CDC Cyber</span> Range of mainframe-class supercomputers

The CDC Cyber range of mainframe-class supercomputers were the primary products of Control Data Corporation (CDC) during the 1970s and 1980s. In their day, they were the computer architecture of choice for scientific and mathematically intensive computing. They were used for modeling fluid flow, material science stress analysis, electrochemical machining analysis, probabilistic analysis, energy and academic computing, radiation shielding modeling, and other applications. The lineup also included the Cyber 18 and Cyber 1000 minicomputers. Like their predecessor, the CDC 6600, they were unusual in using the ones' complement binary representation.

In computer science, array programming refers to solutions which allow the application of operations to an entire set of values at once. Such solutions are commonly used in scientific and engineering settings.

<span class="mw-page-title-main">LAPACK</span> Software library for numerical linear algebra

LAPACK is a standard software library for numerical linear algebra. It provides routines for solving systems of linear equations and linear least squares, eigenvalue problems, and singular value decomposition. It also includes routines to implement the associated matrix factorizations such as LU, QR, Cholesky and Schur decomposition. LAPACK was originally written in FORTRAN 77, but moved to Fortran 90 in version 3.2 (2008). The routines handle both real and complex matrices in both single and double precision. LAPACK relies on an underlying BLAS implementation to provide efficient and portable computational building blocks for its routines.

<span class="mw-page-title-main">PERQ</span> First commercially produced personal workstation with a Graphical User Interface

The PERQ, also referred to as the Three Rivers PERQ or ICL PERQ, was a pioneering workstation computer produced in the late 1970s through the early 1980s. In June 1979, the company took its very first order from the UK's Rutherford Appleton Laboratory and the computer was officially launched in August 1979 at SIGGRAPH in Chicago. It was the first commercially produced personal workstation with a Graphical User Interface. The design was heavily influenced by the original workstation computer, the Xerox Alto, which was never commercially produced. The origin of the name "PERQ" was chosen both as an acronym of "Pascal Engine that Runs Quicker," and to evoke the word perquisite commonly called perks, that is employee additional benefits.

Basic Linear Algebra Subprograms (BLAS) is a specification that prescribes a set of low-level routines for performing common linear algebra operations such as vector addition, scalar multiplication, dot products, linear combinations, and matrix multiplication. They are the de facto standard low-level routines for linear algebra libraries; the routines have bindings for both C and Fortran. Although the BLAS specification is general, BLAS implementations are often optimized for speed on a particular machine, so using them can bring substantial performance benefits. BLAS implementations will take advantage of special floating point hardware such as vector registers or SIMD instructions.

<span class="mw-page-title-main">MasPar</span>

MasPar Computer Corporation was a minisupercomputer vendor that was founded in 1987 by Jeff Kalb. The company was based in Sunnyvale, California.

<span class="mw-page-title-main">ICL 2900 Series</span> UK mainframe computer systems

The ICL 2900 Series was a range of mainframe computer systems announced by the British manufacturer ICL on 9 October 1974. The company had started development under the name "New Range" immediately on its formation in 1968. The range was not designed to be compatible with any previous machines produced by the company, nor for compatibility with any competitor's machines: rather, it was conceived as a synthetic option, combining the best ideas available from a variety of sources.

The NAG Numerical Library is a software product developed and sold by The Numerical Algorithms Group Ltd. It is a software library of numerical analysis routines, containing more than 1,900 mathematical and statistical algorithms. Areas covered by the library include linear algebra, optimization, quadrature, the solution of ordinary and partial differential equations, regression analysis, and time series analysis.

DAP FORTRAN was an extension of the non IO parts of FORTRAN with constructs that supported parallel computing for the ICL Distributed Array Processor (DAP). The DAP had a Single Instruction Multiple Data (SIMD) architecture with 64x64 single bit processors.

<span class="mw-page-title-main">Array</span> Disambiguation article

An array is a systematic arrangement of similar objects, usually in rows and columns.

ICT 1900 was a family of mainframe computers released by International Computers and Tabulators (ICT) and later International Computers Limited (ICL) during the 1960s and 1970s. The 1900 series was notable for being one of the few non-American competitors to the IBM System/360, enjoying significant success in the European and British Commonwealth markets.

<span class="mw-page-title-main">John Iliffe (computer designer)</span> British computer designer (1931-2020)

John Kenneth Iliffe was a British computer designer who worked on the design and evaluation of computers that supported fine-grained memory protection and object management. He implemented, evaluated and refined such designs in the Rice Institute Computer, R1 (1958–61) and the ICL Basic Language Machine (1963–68). A key feature in the architectures of both machines was control by the hardware of the formation and use of memory references so that the memory could be seen as a collection of data objects of defined sizes whose integrity is protected from the consequences of errors in address calculation, such as overrunning memory pointers.

References

  1. Gordon G Scarrott (Summer 1995). "From Torsional Mode Delay Lines to DAP". Computer Resurrection (12).
  2. Stewart Reddaway (Spring 2004). "Letter to the editor". Computer Resurrection. 48 (33): 149–150. doi:10.1016/j.lungcan.2004.09.011. PMID   15777984.
  3. S. F. Reddaway (1973). "DAP - a distributed array processor" (PDF). Proceedings of the 1st Annual Symposium on Computer Architecture, (Gainesville, Florida). ACM Press. 2 (4): 61–65. doi:10.1145/633642.803971.
  4. Brian Russell (Summer 2001). "Mil-DAP Resurrection Project". Computer Resurrection (5).