From transformations to methodology in parallel program development: A case study

Abstract The Bird-Meertens formalism (BMF) of higher-order functions over lists is a mathematical framework supporting formal derivation of algorithms from functional specifications. This paper reports results of a case study on the systematic use of BMF in the process of parallel program development. We develop a parallel program for polynomial multiplication, starting with a straight-forward mathematical specification and arriving at the target processor topology together with a program for each processor of it. The development process is based on formal transformations; design decisions concerning data partitioning, processor interconnections, etc. are governed by formal type analysis and performance estimation rather than made ad hoc . The parallel target implementation is parameterized for an arbitrary number of processors; for the particular number, the target program is both time and cost-optimal. We compare our results with systolic solutions to polynomial multiplication.

[1]  Geraint Jones,et al.  Deriving the Fast Fourier Algorithm by Calculation , 1989, Functional Programming.

[2]  Zhigang Chen,et al.  Mapping of uniform dependence algorithm onto fixed size processor arrays , 1993, [1993] Proceedings Seventh International Parallel Processing Symposium.

[3]  Peter Pepper,et al.  Deductive Derivation of Parallel Programs , 1993 .

[4]  Wentong Cai,et al.  A Cost Calculus for Parallel Functional Programming , 1995, J. Parallel Distributed Comput..

[5]  A. Max Geerling,et al.  Formal Derivation of SIMD Parallelism from Non-Linear Recursive Specifications , 1994, CONPAR.

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

[7]  Jeremy Gibbons Upwards and Downwards Accumulations on Trees , 1992, MPC.

[8]  John T. O'Donnell,et al.  A Correctness Proof of Parallel Scan , 1994, Parallel Process. Lett..

[9]  F. Leighton,et al.  Introduction to Parallel Algorithms and Architectures: Arrays, Trees, Hypercubes , 1991 .

[10]  David W. Walker,et al.  The Design of a Standard Message Passing Interface for Distributed Memory Concurrent Computers , 1994, Parallel Comput..

[11]  Wentong Cai,et al.  Calculating Recurrences Using the Bird-Meertens Formalism , 1995, Parallel Process. Lett..

[12]  Murray Cole List Homomorphic Parallel Algorithms for Bracket Matching , 1993 .

[13]  Wentong Cai,et al.  Equational code generation: implementing categorical data types for data parallelism , 1994, Proceedings of TENCON'94 - 1994 IEEE Region 10's 9th Annual International Conference on: 'Frontiers of Computer Technology'.

[14]  Murray Cole,et al.  Algorithmic skeletons : a structured approach to the management of parallel computation , 1988 .

[15]  Peter Pepper,et al.  Functional Development of Massively Parallel Programs (Invited Paper) , 1993, Formal Methods in Programming and Their Applications.

[16]  Salvatore Orlando,et al.  Efficient Compilation of Structured Parallel Programs for Distributed Memory MIMD Machines , 1993, PARCO.

[17]  Mary Sheeran,et al.  Designing Arithmetic Circuits by Refinement in Ruby , 1994, Sci. Comput. Program..

[18]  Richard S. Bird,et al.  Lectures on Constructive Functional Programming , 1989 .

[19]  Peter G. Harrison,et al.  A Higher-Order Approach to Parallel Algorithms , 1992, Comput. J..

[20]  A. M. Geerling Program transformations and skeletons: formal derivation of parallel programs , 1995, Proceedings the First Aizu International Symposium on Parallel Algorithms/Architecture Synthesis.

[21]  Mario Südholt,et al.  Data Distribution Algebras - A Formal Basis for Programming Using Skeletons , 1994, PROCOMET.

[22]  Sergei Gorlatch,et al.  Systematic development of an SPMD implementation schema for mutually recursive divide-and-conquer specifications , 1994, Proceedings of 8th International Parallel Processing Symposium.

[23]  Peter G. Harrison,et al.  Parallel Programming Using Skeleton Functions , 1993, PARLE.

[24]  Mary Sheeran,et al.  Designing Arithmetic Circuits by Refinement in Ruby , 1994, Sci. Comput. Program..

[25]  Christian Lengauer,et al.  Loop Parallelization in the Polytope Model , 1993, CONCUR.

[26]  H. A. Partsch Some Experiments in Transforming Towards Parallel Executability , 1993 .

[27]  David B. Skillicorn,et al.  Deriving Parallel Programs from specification Susing Cost Information , 1993, Sci. Comput. Program..

[28]  Edsger W. Dijkstra,et al.  Predicate Calculus and Program Semantics , 1989, Texts and Monographs in Computer Science.

[29]  Lambert G. L. T. Meertens,et al.  Constructing a Calculus of Programs , 1989, MPC.