An appreciation of SIMD-array architectures is not complete without at least an overview of the types of languages and algorithms that have been developed for these machines. One of the most striking features of almost all SIMD-array machines is the way in which moderate to large amounts of data-level parallelism need to be explicitly described by the applications programmer, and this impacts on the design of both languages and algorithms. For the language designer these machines present a problem; how should the parallelism in the architecture be made visible to the programmer? Should the structure of the architecture be reflected in the langauge to give the programmer complete control of the hardware, or should the language provide a machine-independent interface to improve software structure and portability, albeit at some reduction in absolute performance? Some languages do attempt to provide a high level of abstraction, CM-Lisp for example, whereas others constitute what can only be described as augmented assembler language, for example DAP Fortran. Between these two extremes exist languages such as Actus, a language based around Pascal but with extensions for defining and operating on parallel data objects.
|Title of host publication||Architecture of High Performance Computers Volume II|
|Subtitle of host publication||Array processors and multiprocessor systems|
|Place of Publication||New York, NY|
|Publisher||Springer New York|
|Number of pages||16|
|Publication status||Published - 1989|