A Simple Program Transformation for Parallelism

Most of the research, to date, on optimizing program transformations for declarative languages has focused on sequential execution strategies. In this paper, we consider a class of commonly encountered computations whose \natural" speciica-tion is essentially sequential, and show how algebraic properties of the operators involved can be used to transform them into divide-and-conquer programs that are considerably more eecient, both in theory and in practice, on parallel machines.

[1]  Udi Manber,et al.  Introduction to algorithms - a creative approach , 1989 .

[2]  Saumya K. Debray,et al.  Optimizing Almost-Tail-Recursive Prolog Programs , 1985, FPCA.

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

[4]  John C. Shepherdson,et al.  Unfold/fold transformations of logic programs , 1992, Mathematical Structures in Computer Science.

[5]  Barbara M. Chapman,et al.  Supercompilers for parallel and vector computers , 1990, ACM Press frontier series.

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

[7]  Saumya K. Debray,et al.  Task granularity analysis in logic programs , 1990, PLDI '90.

[8]  Frank Thomson Leighton Introduction to parallel algorithms and architectures: arrays , 1992 .

[9]  Yves Kodratoff,et al.  Some Techniques for Recursion Removal from Recursive Functions , 1982, TOPL.

[10]  Keshav Pingali,et al.  Accumulators: A New Logic Variable Abstractions for Functional Languages , 1988, FSTTCS.

[11]  Keshav Pingali,et al.  Accumulators: New Logic Variable Abstractions for Functional Languages , 1991, Theor. Comput. Sci..

[12]  Catriel Beeri,et al.  Optimizing existential datalog queries , 1988, PODS.

[13]  Håkan Millroth Reforming Compilation of Logic Programs , 1991, ISLP.

[14]  Lawrence F. Shampine,et al.  Numerical computing: An introduction , 1973 .

[15]  Vivek Sarkar,et al.  Partitioning and Scheduling Parallel Programs for Multiprocessing , 1989 .

[16]  John R. Gurd,et al.  Transforming Recursive Programs for Execution on Parallel Machines , 1985, FPCA.