A cost calculus for parallel functional programming
1995, Journal of Parallel and Distributed Computing
Abstract
Building a cost calculus for a parallel program development environment is di cult because of the many degrees of freedom available in parallel implementations, and because of di culties with compositionality. We present a strategy for building cost calculi for skeleton-based programming languages which can be used for derivational software development and which deals in a pragmatic way with the di culties of composition. The approach is illustrated for the Bird-Meertens theory of lists, a parallel functional language with an associated equational transformation system.
References (35)
- D.F. Bacon, S.L. Graham, and O.J. Sharp. Compiler transformations for high- performance computing. ACM Computing Surveys, to appear.
- F. Bellegarde. Rewriting systems on FP expressions to reduce the number of sequences yielded. Science of Computer Programming, 6:11{34, 1986.
- R.S. Bird. A calculus of functions for program derivation. Oxford University Program- ming Research Group Monograph PRG-64, 1987.
- R.S. Bird. An introduction to the theory of lists. In M. Broy, editor, Logic of Program- ming and Calculi of Discrete Design, pages 3{42. Springer-Verlag, 1987.
- R.S. Bird. Lectures on constructive functional programming. Oxford University Pro- gramming Research Group Monograph PRG-69, 1988.
- R.S. Bird. Algebraic identities for program calculation. The Computer Journal, 32(2):122{126, February 1989.
- R.S. Bird, J. Gibbons, and G. Jones. Formal derivation of a pattern matching algorithm. Science of Computer Programming, 12:93{104, 1989.
- G. Blelloch. Scans as primitive parallel operations. In Proceedings of the International Conference on Parallel Processing, pages 355{362, August 1987.
- G.E. Blelloch. Vector Models for Data-Parallel Computing. MIT Press, 1990.
- L. Boug e. The data-parallel programming model: A semantic perspective. Technical Report 92{45, Laboratoire de l'Informatique du Parall elisme, Ecole Normale Sup erieure de Lyon, 1992.
- W. Cai and D.B. Skillicorn. Calculating recurrences using the Bird-Meertens Formalism. Parallel Processing Letters, submitted February 1994.
- S. Chatterjee, G.E. Blelloch, and A.L. Fisher. Size and access interference for data- parallel programs. In ACM SIGPLAN '91 Conference on Programming Language Design and Implementation, pages 130{144, June 1991.
- M. Cole. Algorithmic Skeletons: Structured Management of Parallel Computation. Research Monographs in Parallel and Distributed Computing. Pitman, 1989.
- M. Danelutto, R. di Meglio, S. Orlando, S. Pelagatti, and M. Vanneschi. A methodology for the development and the support of massively parallel programs. Future Genera- tion Computer Systems, 1992. Also appears as \The P 3 L language: an introduction", Hewlett-Packard Report HPL-PSC-91-29, December 1991.
- M. Danelutto, R. di Meglio, S. Pelagatti, and M. Vanneschi. High level language con- structs for massively parallel computing. Technical report, Hewlett Packard Pisa Science Center, HPL-PSC-90-19, 1990.
- J. Darlington, A.J. Field, P.G. Harrison, P.H.J. Kelly, Q. Wu, and R.L. While. Par- allel programming using skeleton functions. In PARLE93, Parallel Architectures and Languages Europe, June 1993.
- V. Dornic, P. Jouvelot, and D.K. Gi ord. Polymorphic time systems for estimating program complexity. ACM Letters on Programming Languages and Systems, pages 33{45, March 1992.
- S. Flynn Hummel and R. Kelly. A rationale for parallel programming with sets. Journal of Programming Languages, 1:187{207, 1993.
- D. le M etayer. Mechanical analysis of program complexity. Proceedings of the SIGPLAN '85 Symposium, pages 69{73, July 1985.
- C. Lengauer. Loop parallelization in the polytope model. In CONCUR '93, Springer Lecture Notes in Computer Science, 1993.
- G. Malcolm. Algebraic Data Types and Program Transformation. PhD thesis, Rijk- suniversiteit Groningen, September 1990.
- W.F. McColl. General purpose parallel computing. In A.M. Gibbons and P. Spirakis, editors, Lectures on Parallel Computation, Cambridge International Series on Parallel Computation, pages 337{391. Cambridge University Press, Cambridge, 1993.
- K. Mehlhorn and U. Vishkin. Randomized and deterministic simulation of PRAMs by parallel machines with restricted granularity of parallel memories. Acta Informatica, 21:339{374, 1984.
- C. Morgan. Programming from Speci cations. Prentice-Hall International, 1990.
- A.G. Ranade. Fluent Parallel Computation. PhD thesis, Yale University, 1989.
- P. Roe. Parallel Programming Using Functional Languages. PhD thesis, Department of Computer Science, University of Glasgow, February 1991.
- P. Roe. Derivation of e cient data parallel programs. Technical report, Queensland University of Technology, December 1993.
- D. Sands. Complexity analysis for a higher-order language. Technical report, Depart- ment of Computing, Imperial College, Technical Report 88/14, London, December 1988.
- D. Sands. Calculi for Time Analysis of Functional Programs. PhD thesis, Imperial College, London, September 1990.
- D.B. Skillicorn. Architecture-independent parallel computation. IEEE Computer, 23(12):38{51, December 1990.
- D.B. Skillicorn. Models for practical parallel computation. International Journal of Parallel Programming, 20(2):133{158, April 1991. Actually appeared in 1992.
- L. Snyder. Type architectures, shared memory and the corollary of modest potential. Annual Review of Computer Science 1986, 1:289{317, 1987.
- L.G. Valiant. Optimally universal parallel computers. Phil. Trans. Royal Society Lond. Series A, 326:373{376, 1988.
- L.G. Valiant. A bridging model for parallel computation. Communications of the ACM, 33(8):103{111, August 1990.
- L.G. Valiant. General purpose parallel architectures. In J. van Leeuwen, editor, Hand- book of Theoretical Computer Science, Vol. A. Elsevier Science Publishers and MIT Press, 1990.