Parallel implementations of combinations of broadcast, reduction and scan

Broadcast, reduction and scan are popular functional skeletons which are used in distributed algorithms to distribute and gather data. The authors derive new parallel implementations of combinations of broadcast, reduction and scan via a tabular classification of linearly recursive functions. The trick in the derivation is to not simply combine the individual parallel implementations of broadcast, reduction and scan, but to transform these combinations to skeletons with a better performance. These skeletons are also linearly recursive.

[1]  Murray Cole,et al.  Algorithmic Skeletons: Structured Management of Parallel Computation , 1989 .

[2]  M. J. Quinn,et al.  Parallel Computing: Theory and Practice , 1994 .

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

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

[5]  Jr. Hamilton Richards Haskell: The Craft of Functional Programming by Simon Thompson, Addison-Wesley, 1996. , 1998 .

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

[7]  Donald E. Knuth,et al.  The art of computer programming. Vol.2: Seminumerical algorithms , 1981 .

[8]  Simon Thompson,et al.  Haskell: The Craft of Functional Programming , 1996 .

[9]  Donald Ervin Knuth,et al.  The Art of Computer Programming, Volume II: Seminumerical Algorithms , 1970 .

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

[11]  Sergei Gorlatch,et al.  Systematic Efficient Parallelization of Scan and Other List Homomorphisms , 1996, Euro-Par, Vol. II.

[12]  S. Gorlatch Stages and transformations in parallel programming , 1997 .

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

[14]  Sergei Gorlatch,et al.  Systematic Extraction and Implementation of Divide-and-Conquer Parallelism , 1996, PLILP.

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