The Tailoring of Abstract Functional Specifications of Numerical Algorithms for Sparse Data Structures through Automated Program Derivation and Transformation

The automated application of program transformations is used to derive, from abstract functional specifications of numerical mathematical algorithms, highly efficient imperative implementations tailored for execution on sequential, vector and array processors. Emphasis is placed on transformations which tailor implementations to use special programming techniques optimized for sparse matrices. We demonstrate that derived implementations attain superior execution performance than manual implementations for two significant algorithms.

[1]  Peter G. Harrison,et al.  A Functional Programming Environment Supporting Execution, Partial Execution and Transformation , 1989, PARLE.

[2]  Steven J. Fitzpatrick,et al.  The Specification of Array-Based Algorithms and the Automated Derivation of Parallel Implementations , 1994 .

[3]  Åke Wikström,et al.  Functional programming using standard ML , 1987, Prentice Hall International Series in Computer Science.

[4]  Dennis F. Kibler,et al.  Improving and refining programs by program manipulation , 1976, ACM '76.

[5]  Peter Kilpatrick,et al.  A Family of Data-Parallel Derivations , 1994, HPCN.

[6]  Helmut A. Partsch,et al.  Specification and transformation of programs , 1990 .

[7]  Aart J. C. Bik,et al.  Compilation techniques for sparse matrix computations , 1993, ICS '93.

[8]  John Hughes,et al.  Why Functional Programming Matters , 1989, Comput. J..

[9]  Jack J. Dongarra,et al.  An extended set of FORTRAN basic linear algebra subprograms , 1988, TOMS.

[10]  Bruce J. MacLennan,et al.  Functional programming - practice and theory , 1990 .

[11]  Robert L. Wainwright,et al.  A Study of Sparse Matrix Representations for Solving Linear Systems in a Functional Language , 1992, J. Funct. Program..

[12]  John Darlington,et al.  A Transformation System for Developing Recursive Programs , 1977, J. ACM.

[13]  Kaisa Sere,et al.  Stepwise Refinement of Parallel Algorithms , 1990, Sci. Comput. Program..

[14]  Sergio Pissanetzky,et al.  Sparse Matrix Technology , 1984 .

[15]  Maurice Clint,et al.  The Construction of Numerical Mathematical Software for the AMT DAP by Program Transformation , 1992, CONPAR.

[16]  Richard S. Bird,et al.  Algebraic Identities for Program Calculation , 1989, Comput. J..

[17]  J. E. Key Computer program for solution of large sparse unsymmetric systems , 1973 .

[18]  James M. Boyle,et al.  TRANSFORMATIONAL COMPONENT FOR PROGRAMMING LANGUAGE GRAMMAR. , 1970 .

[19]  James M. Boyle,et al.  A practical functional program for the CRAY X-MP , 1992, Journal of Functional Programming.

[20]  Maurice Clint,et al.  Two algorithms for the parallel computation of eigenvalues and eigenvectors of large symmetric matrices using the ICL DAP , 1990, Parallel Comput..