Stages and transformations in parallel programming

An approach, called SAT (Stages And Transformations), is introduced to support the derivation of parallel distributed-memory programs. During the design, a program is viewed as a single thread of stages, with parallelism concentrated within stages; the target program is of the SPMD format. The design process is based on the transformation rules of the Bird-Meertens formalism of higher-order functions over lists. The approach is illustrated by three case studies which include: a systematic method of constructing list homomorphisms, a scalable, load-balanced implementation of divide-and-conquer based on a specialized topology and a formal derivation of a time and cost optimal parallel algorithm for straightforward polynomial multiplication.

[1]  Nissim Francez,et al.  Decomposition of Distributed Programs into Communication-Closed Layers , 1982, Sci. Comput. Program..

[2]  Guy E. Blelloch,et al.  Scans as Primitive Parallel Operations , 1989, ICPP.

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

[4]  Marina Chen,et al.  Crystal: theory and pragmatics of generating efficient parallel code , 1991 .

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

[6]  Uzi Vishkin,et al.  A Case for the PRAM As a Standard Programmer's Model , 1992, Heinz Nixdorf Symposium.

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

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

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

[10]  Ramesh Subramonian,et al.  LogP: towards a realistic model of parallel computation , 1993, PPOPP '93.

[11]  Lawrence Snyder A Practical Parallel Programming Model , 1994, Specification of Parallel Algorithms.

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

[13]  Robin Sharp,et al.  Using a language of functions and relations for VLSI specification , 1995, FPCA '95.

[14]  William F. McColl,et al.  Scalable Computing , 1995, Computer Science Today.

[15]  Peter M. Dew,et al.  The Performance of Parallel Algorithmic Skeletons , 1995 .

[16]  David B. Skillicorn,et al.  Foundations of parallel programming , 1995 .

[17]  Murray Cole,et al.  Parallel Programming with List Homomorphisms , 1995, Parallel Process. Lett..

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

[19]  Sergei Gorlatch,et al.  N-graphs: A topology for parallel divide-and-conquer on transputer networks , 1995 .

[20]  Jeremy Gibbons The Third Homomorphism Theorem , 1996, J. Funct. Program..

[21]  Sergei Gorlatch,et al.  From transformations to methodology in parallel program development: A case study , 1996, Microprocess. Microprogramming.

[22]  Luc Bougé The Data Parallel Programming Model: A Semantic Perspective , 1996, The Data Parallel Programming Model.