## The Automated Transformation of Abstract Specifications of Numerical Algorithms into Efficient Array Processor Implementations (1997)

Venue: | Science of Computer Programming |

Citations: | 12 - 5 self |

### BibTeX

@ARTICLE{Fitzpatrick97theautomated,

author = {Stephen Fitzpatrick and Terence J. Harmer and Alan Stewart and Maurice Clint and James M. Boyle},

title = {The Automated Transformation of Abstract Specifications of Numerical Algorithms into Efficient Array Processor Implementations},

journal = {Science of Computer Programming},

year = {1997},

volume = {28},

pages = {1--41}

}

### OpenURL

### Abstract

We present a set of program transformations which are applied automatically to convert abstract functional specifications of numerical algorithms into efficient implementations tailored to the AMT DAP array processor. The transformations are based upon a formal algebra of a functional array form, which provides a functional model of the array operations supported by the DAP programming language. The transformations are shown to be complete. We present specifications and derivations of two example algorithms: an algorithm for computing eigensystems and an algorithm for solving systems of linear equations. For the former, we compare the execution performance of the implementation derived by transformation with the performance of an independent, manually constructed implementation; the efficiency of the derived implementation matches that of the manually constructed implementation.

### Citations

1363 | The Essence of Functional Programming
- Wadler
- 1992
(Show Context)
Citation Context ...he definitions presented are, for the most part, natural extensions of the usual definitions over lists to definitions over arrays. (Those unfamiliar with functional programming languages may consult =-=[44,7,30,63,67,26]-=- for an introduction to functional programming and the use of higher-order functions.) No claim is made in respect to the originality of the array functions; they are presented as objects that have pr... |

609 | A Transformation System for Developing Recursive Programs
- Burstall, Darlington
- 1979
(Show Context)
Citation Context ...ogram into an equivalent but more efficient form. The initial and final forms are generally expressed in the same language. An early example is Burstall’s and Darlington’s unfold-fold transformations =-=[18]-=- which improve the execution efficiency of systems of recursive equations. This topic is pursued further in [9,39,46,62]. Again, the work reported in these papers has been employed in the optimiza39st... |

446 |
Algorithmic Skeletons: Structured Management of Parallel Computation
- Cole
- 1989
(Show Context)
Citation Context ...er them for the parallel execution of functional programs. The functions employed in the functional specifications in this paper are related to these definitions. Darlington et al. [29] use skeletons =-=[28,23,61]-=- in high-level specifications of algorithms. Skeletons are higher-order functions that describe a repertoire of parallel operations and are used as the building blocks of an algorithm’s specification.... |

425 | Deforestation: Transforming programs to eliminate trees - Wadler - 1988 |

244 | KIDS: A semiautomatic program development system
- Smith
- 1990
(Show Context)
Citation Context ...sformations and derivations is available. Although it is not the main subject of this paper the interested reader is referred to Partsch [60] for an overview of various transformations systems and to =-=[25,27,72,66,42,47]-=- for discussions of particular transformation systems. A major issue still to be addressed in transformation systems is the control of the derivation process; i.e. the specification of strategies to a... |

163 |
Facile: A Symmetric Integration of Concurrent and Functional Programming
- Giacalone, Mishra, et al.
- 1989
(Show Context)
Citation Context ...ally, when using such languages, a programmer specifies that a process be created to evaluate some expression and evaluation then proceeds until the value generated by the created process is required =-=[33,55,37,49,34]-=-. Such language forms might serve as a target for transformation derivation or as a standard form to be used in the transformational process. As before, however, our goal is to have specifications tha... |

118 |
The implementation of functional programming languages
- PEYTON-JONES
- 1987
(Show Context)
Citation Context ...he definitions presented are, for the most part, natural extensions of the usual definitions over lists to definitions over arrays. (Those unfamiliar with functional programming languages may consult =-=[44,7,30,63,67,26]-=- for an introduction to functional programming and the use of higher-order functions.) No claim is made in respect to the originality of the array functions; they are presented as objects that have pr... |

114 |
Program Transformation Systems
- Partsch, Steinbruggen
- 1983
(Show Context)
Citation Context ...ram Transformation A large volume of literature on program transformations and derivations is available. Although it is not the main subject of this paper the interested reader is referred to Partsch =-=[60]-=- for an overview of various transformations systems and to [25,27,72,66,42,47] for discussions of particular transformation systems. A major issue still to be addressed in transformation systems is th... |

107 |
Data structures and program transformation
- Malcolm
- 1990
(Show Context)
Citation Context ...re how much can be achieved automatically. With TAMPR it is possible to apply particular algorithm transformations to achieve the effect of model-oriented skeletons. The Bird Meertens Formalism (BMF) =-=[65,5,6,56,3,52]-=- provides a simple, consistent functional language in which algorithms may be expressed. BMF provides an elegant framework for the study of algorithms, but its utility as a numerical mathematical algo... |

104 |
A report on the SISAL language project
- Feo, Cann, et al.
- 1990
(Show Context)
Citation Context ...he definitions presented are, for the most part, natural extensions of the usual definitions over lists to definitions over arrays. (Those unfamiliar with functional programming languages may consult =-=[44,7,30,63,67,26]-=- for an introduction to functional programming and the use of higher-order functions.) No claim is made in respect to the originality of the array functions; they are presented as objects that have pr... |

92 |
Architecture-independent parallel computation
- Skillicorn
- 1990
(Show Context)
Citation Context ...re how much can be achieved automatically. With TAMPR it is possible to apply particular algorithm transformations to achieve the effect of model-oriented skeletons. The Bird Meertens Formalism (BMF) =-=[65,5,6,56,3,52]-=- provides a simple, consistent functional language in which algorithms may be expressed. BMF provides an elegant framework for the study of algorithms, but its utility as a numerical mathematical algo... |

90 |
Fortran 90 Explained
- Metcalf, Reid
- 1992
(Show Context)
Citation Context ...uages such as ADA, which are designed with parallel execution in mind. Of particular relevance in the context of this paper are the array extensions to Fortran provided by languages such as Fortran90 =-=[57]-=-, Connection Machine Fortran [22], Fortran Plus Enhanced [1], Fortran-D [32] and Vienna Fortran [4]. These extensions provide, to some degree, a data abstraction for arrays: many common operations suc... |

58 |
Algebraic identities for program calculation
- Bird
- 1989
(Show Context)
Citation Context ...re how much can be achieved automatically. With TAMPR it is possible to apply particular algorithm transformations to achieve the effect of model-oriented skeletons. The Bird Meertens Formalism (BMF) =-=[65,5,6,56,3,52]-=- provides a simple, consistent functional language in which algorithms may be expressed. BMF provides an elegant framework for the study of algorithms, but its utility as a numerical mathematical algo... |

52 |
A system for assisting program transformation
- Feather
- 1982
(Show Context)
Citation Context ...sformations and derivations is available. Although it is not the main subject of this paper the interested reader is referred to Partsch [60] for an overview of various transformations systems and to =-=[25,27,72,66,42,47]-=- for discussions of particular transformation systems. A major issue still to be addressed in transformation systems is the control of the derivation process; i.e. the specification of strategies to a... |

42 |
Parallel Algorithms and Matrix Computation
- Modi
- 1987
(Show Context)
Citation Context ...alculate the coefficient βi = −ri+1Api/p T i Api, (e) determine the new direction pi+1 = ri+1 + βipi, (v) continue until either ri or pi is zero. Fig. 2. Mathematical definition of Conjugate Gradient =-=[58, p152]-=- employ the basic method defined in Figure 2, rather than to a specific algorithm. The particular version used here is known as a bi-conjugate gradient algorithm; the functional specification is shown... |

40 |
A Methodology for the Development and the Support of Massively Parallel Programs
- Pelagatti
- 1993
(Show Context)
Citation Context ...er them for the parallel execution of functional programs. The functions employed in the functional specifications in this paper are related to these definitions. Darlington et al. [29] use skeletons =-=[28,23,61]-=- in high-level specifications of algorithms. Skeletons are higher-order functions that describe a repertoire of parallel operations and are used as the building blocks of an algorithm’s specification.... |

32 | An exploration of the Bird-Meertens formalism
- Backhouse
- 1989
(Show Context)
Citation Context |

32 |
Abstract programming and program transformation
- Boyle
- 1989
(Show Context)
Citation Context ... scalar processor, resulting in much slower execution than is achievable on the processor array. 5 Transforming Functional Specifications to Efficient Programs The TAMPR program transformation system =-=[10,14]-=- can be employed to apply program transformations to derive efficient Fortran or C programs from higherorder functional specifications. Each TAMPR transformation rule is a rewrite rule, having a patte... |

31 |
Performance Fortran Language Specification Version 1.0. High Performance Fortran Forum
- High
- 1993
(Show Context)
Citation Context ...the distribution of data on distributed memory systems. Recently, many of the features of these array-based Fortran dialects have been coalesced into a single language called High Performance Fortran =-=[41]-=-. The language definition is still under review and there are, as yet, no widely available HPF compilers. 40sIn some ways, the array extensions to Fortran may be viewed as an attempt to introduce into... |

29 |
High-performance parallel graph reduction
- Jones, Clack, et al.
- 1989
(Show Context)
Citation Context ...iented transformations of the transformational derivations presented here. Many computer systems have been developed specifically to support the parallel execution of functional programming languages =-=[24,40,45,64,48,38,53]-=-. Special hardware that supports combinatoric graph reduction offers the possibility of a radical change in the relative performances of functional and imperative languages, thereby reducing the need ... |

25 |
Program Reusability Through Program Transformation
- Boyle, Muralidharan
- 1984
(Show Context)
Citation Context ...on which other specialized derivations may be constructed. A more detailed discussion of the basic transformation steps, including some example code fragments generated at various stages, is given in =-=[12,15]-=-. 5.2 Transformational Derivation for the AMT DAP For efficient execution on the AMT DAP, a specification is recast into Fortran Plus Enhanced in order to exploit the parallel array operations provide... |

20 |
Why Functional Programming
- Hughes
- 1989
(Show Context)
Citation Context |

19 |
On the conversion of indirect to direct recursion
- Kaser, Ramakrishnan, et al.
- 1993
(Show Context)
Citation Context ...e language. An early example is Burstall’s and Darlington’s unfold-fold transformations [18] which improve the execution efficiency of systems of recursive equations. This topic is pursued further in =-=[9,39,46,62]-=-. Again, the work reported in these papers has been employed in the optimiza39stion techniques used in the unfolding phase of the transformational method discussed here. 8.4 Traditional Imperative Par... |

17 |
A transformational component for programming languages grammar
- Boyle
- 1970
(Show Context)
Citation Context ... scalar processor, resulting in much slower execution than is achievable on the processor array. 5 Transforming Functional Specifications to Efficient Programs The TAMPR program transformation system =-=[10,14]-=- can be employed to apply program transformations to derive efficient Fortran or C programs from higherorder functional specifications. Each TAMPR transformation rule is a rewrite rule, having a patte... |

16 |
An Overview of the Flagship System
- Keane
- 1994
(Show Context)
Citation Context ...iented transformations of the transformational derivations presented here. Many computer systems have been developed specifically to support the parallel execution of functional programming languages =-=[24,40,45,64,48,38,53]-=-. Special hardware that supports combinatoric graph reduction offers the possibility of a radical change in the relative performances of functional and imperative languages, thereby reducing the need ... |

14 |
A functional programming environment supporting execution, partial execution and transformation
- Darlington, Harrison, et al.
- 1989
(Show Context)
Citation Context ...sformations and derivations is available. Although it is not the main subject of this paper the interested reader is referred to Partsch [60] for an overview of various transformations systems and to =-=[25,27,72,66,42,47]-=- for discussions of particular transformation systems. A major issue still to be addressed in transformation systems is the control of the derivation process; i.e. the specification of strategies to a... |

14 |
Supercompilers for Parallel and Vector
- Zima, Chapman
- 1990
(Show Context)
Citation Context ...ate code for parallel systems usually perform extensive program analysis in order to exploit parallel execution. This is achieved primarily by executing multiple iterations of DO loops simultaneously =-=[73]-=-. This area of study is not directly related to the work in this paper, insofar as the results of research is this area are not employed in the derivations presented here. However, the research is imp... |

13 |
Improving recursive functions by inverting the order of evaluation
- Boiten
- 1992
(Show Context)
Citation Context ...e language. An early example is Burstall’s and Darlington’s unfold-fold transformations [18] which improve the execution efficiency of systems of recursive equations. This topic is pursued further in =-=[9,39,46,62]-=-. Again, the work reported in these papers has been employed in the optimiza39stion techniques used in the unfolding phase of the transformational method discussed here. 8.4 Traditional Imperative Par... |

12 |
Constructing a calculus of programs
- Meertens
- 1989
(Show Context)
Citation Context |

10 |
Parallel Functional Programming with Arrays
- Hains, Mullin
- 1993
(Show Context)
Citation Context ...g languages for this purpose. Numerical mathematicians readily accept array-based functions as a natural extension to the conventional mathematical notations used in their community. Hains and Mullin =-=[36]-=- define ML functions that operate on arrays. The dimensionality of the array is expressed by defining the structure of the array. However, as with BMF, arrays are represented by lists of elements ther... |

8 |
Mul-T: a high-performance parallel Lisp
- Jr, Mohr
- 1989
(Show Context)
Citation Context ...anguage Compilers Many functional language compilers generate machine code which is comparable in efficiency to that produced from hand-crafted imperative programs; among these are the Orbit Compiler =-=[49]-=- for the language T, the ALFL language compiler [8], the compiler for the SISAL language [26] and the Lazy ML compiler [2]. This body of experience has been drawn upon in the compileroriented transfor... |

7 |
A Practical Functional Program for the CRAY
- Boyle, Harmer
- 1992
(Show Context)
Citation Context ...s are derived, each implementation being tailored to a particular computer system. The automated derivation of implementations for sequential and vector computer systems has been discussed previously =-=[15]-=-; in this paper, we extend this work to the derivation of implementations for the AMT DAP array processor. In Section 2 we discuss the specification language we use, a subset of the functional program... |

7 |
Massively Parallel Computing with the DAP
- Parkinson, Litt
- 1990
(Show Context)
Citation Context ...or those of the mathematical definitions. The specifications should be readily understood by a reader with a knowledge of basic mathematics. 4 The Target Architecture: The AMT DAP 510 The AMT DAP 510 =-=[59]-=- is a Single Instruction Multiple Datastream (SIMD) parallel computer system, consisting of a 32 by 32 grid of processing elements (see Figure 5) controlled by a separate master processor. The master ... |

7 |
Burstall: Deriving very Efficient Algorithms for Evaluating Linear Recurrence Relations Using the Program Transformation Technique
- Pettorossi, M
- 1982
(Show Context)
Citation Context ...e language. An early example is Burstall’s and Darlington’s unfold-fold transformations [18] which improve the execution efficiency of systems of recursive equations. This topic is pursued further in =-=[9,39,46,62]-=-. Again, the work reported in these papers has been employed in the optimiza39stion techniques used in the unfolding phase of the transformational method discussed here. 8.4 Traditional Imperative Par... |

6 | Functional Specifications for Mathematical Computations, Constructing Programs from Specifications - Boyle, Harmer - 1991 |

6 |
a combinator graph reduction multiprocessor
- Contessa, Cousin, et al.
- 1989
(Show Context)
Citation Context ...iented transformations of the transformational derivations presented here. Many computer systems have been developed specifically to support the parallel execution of functional programming languages =-=[24,40,45,64,48,38,53]-=-. Special hardware that supports combinatoric graph reduction offers the possibility of a radical change in the relative performances of functional and imperative languages, thereby reducing the need ... |

5 | The Chalmers Lazy-ML - Augustsson, Johnsson - 1989 |

5 |
An Optimizing Compiler for a Modern Functional Language
- Bloss, Hudak, et al.
- 1989
(Show Context)
Citation Context ... generate machine code which is comparable in efficiency to that produced from hand-crafted imperative programs; among these are the Orbit Compiler [49] for the language T, the ALFL language compiler =-=[8]-=-, the compiler for the SISAL language [26] and the Lazy ML compiler [2]. This body of experience has been drawn upon in the compileroriented transformations of the transformational derivations present... |

5 |
Automatic, Self-adaptive Control of Unfold Transformations
- Boyle
- 1994
(Show Context)
Citation Context ... convert one normal form into the next. The use of normal forms has been discussed at least as early as 1970 by Boyle [10] and has been addressed more recently by Hoare [43]. In a recent paper, Boyle =-=[17]-=- shows how a sequence of normal forms can be used to control transformations that perform partial evaluation of programs. Program transformation has traditionally been used to recast a program into an... |

5 |
A Language for Specifying Program Transformations
- Hildum, Cohen
- 1990
(Show Context)
Citation Context |

5 |
An Overview of the REX
- Magee
- 1990
(Show Context)
Citation Context ...ting research into alternative approaches to programming high-performance computer systems; the work reported here may be viewed as one alternative. Configuration languages such as those advocated in =-=[31,51]-=- permit composition of black-box processes by specification of the communication between these. Typically, the processes are expressed in a sequential language, such as Fortran or C, and the communica... |

5 |
Functional Programming using Standard ML
- Wilström
- 1987
(Show Context)
Citation Context ...we extend this work to the derivation of implementations for the AMT DAP array processor. In Section 2 we discuss the specification language we use, a subset of the functional programming language ML =-=[69]-=-, and the (small) set of functions that support array operations in ML and illustrate how these functions can be used to define common matrix and vector operations. In Section 3 we specify two signifi... |

4 |
Algebraic transformation techniques for functional languages. The computer journal
- Harrison, Khoshnevisan
- 1988
(Show Context)
Citation Context |

4 |
Two Algorithms for the Parallel Computation of Eigenvalues and
- Weston, Clint
- 1990
(Show Context)
Citation Context ...pproximation to the eigensystem 8 by a hand-crafted implementation of POT is compared with the time required by the automatically derived implementation; the hand-crafted version has been analyzed in =-=[21,70]-=-. Matrix Size Time per iteration (sec) Hand Crafted Automatically Derived Fortran Plus Enhanced Fortran Plus Enhanced 64 1.35 1.35 128 9.30 9.31 256 69.86 70.30 Fig. 10. Execution times of derived and... |

3 |
Towards Automatic Synthesis of Linear Algebra Programs Production and Assessment of Numerical Software
- Boyle
- 1980
(Show Context)
Citation Context ...z] ∗ B@[z, y]), +, 0) The left side corresponds to the ijk order of evaluation (with k parallelised); the right side corresponds to the kij order of evaluation (with ij parallelised). As discussed in =-=[16]-=-, the latter order of evaluation can be understood as computing the matrix product by a sequence of n rank-one updates to the zero matrix. The motivation for this optimization is as follows: the reduc... |

3 |
SYNAPSE: A Multi-microprocessor Lisp Machine with Parallel Garbage Collector
- Matsui
- 1987
(Show Context)
Citation Context |

2 |
Fortran-Plus Language Enhanced
- AMT
- 1988
(Show Context)
Citation Context ...step] where lower is the smallest value in the set, upper is the largest value in the set and step is the offset between adjacent values. For example, a two dimensional 4 × 4 Shape may be defined as [=-=[1, 4, 1]-=-, [1, 4, 1]] and denotes the set of indices {[i, j]|i ∈ 1..4 ∧ j ∈ 1..4}. For brevity, we use [n] to denote a dimension with unit lower bound and offset; for example: [n, n] is equivalent to [[1, n, 1... |

2 |
J.Hughes, The Alpha-Beta Algorithm: An Exercise
- Bird
- 1987
(Show Context)
Citation Context |

2 | et al., Towards the construction of an eigenvalue engine - Clint - 1988 |

2 |
et al., A Comparison of two Parallel Algorithms for the Symmetric Eigenproblem
- Clint
- 1984
(Show Context)
Citation Context ...ues λ1, . . . , λn of A as its 6sdiagonal elements, and the columns of Q are the corresponding eigenvectors. If A is symmetric, Q is guaranteed to be non-singular and is, in addition, orthogonal. POT =-=[20]-=- computes the eigensystem of a symmetric matrix by constructing a sequence of orthonormal matrices of eigenvector approximations, {Uk}, and a sequence of similar symmetric matrices, {Bk}, thus: (i) U0... |