Academia.eduAcademia.edu

Outline

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)

  1. D.F. Bacon, S.L. Graham, and O.J. Sharp. Compiler transformations for high- performance computing. ACM Computing Surveys, to appear.
  2. F. Bellegarde. Rewriting systems on FP expressions to reduce the number of sequences yielded. Science of Computer Programming, 6:11{34, 1986.
  3. R.S. Bird. A calculus of functions for program derivation. Oxford University Program- ming Research Group Monograph PRG-64, 1987.
  4. 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.
  5. R.S. Bird. Lectures on constructive functional programming. Oxford University Pro- gramming Research Group Monograph PRG-69, 1988.
  6. R.S. Bird. Algebraic identities for program calculation. The Computer Journal, 32(2):122{126, February 1989.
  7. R.S. Bird, J. Gibbons, and G. Jones. Formal derivation of a pattern matching algorithm. Science of Computer Programming, 12:93{104, 1989.
  8. G. Blelloch. Scans as primitive parallel operations. In Proceedings of the International Conference on Parallel Processing, pages 355{362, August 1987.
  9. G.E. Blelloch. Vector Models for Data-Parallel Computing. MIT Press, 1990.
  10. 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.
  11. W. Cai and D.B. Skillicorn. Calculating recurrences using the Bird-Meertens Formalism. Parallel Processing Letters, submitted February 1994.
  12. 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.
  13. M. Cole. Algorithmic Skeletons: Structured Management of Parallel Computation. Research Monographs in Parallel and Distributed Computing. Pitman, 1989.
  14. 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.
  15. 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.
  16. 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.
  17. 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.
  18. S. Flynn Hummel and R. Kelly. A rationale for parallel programming with sets. Journal of Programming Languages, 1:187{207, 1993.
  19. D. le M etayer. Mechanical analysis of program complexity. Proceedings of the SIGPLAN '85 Symposium, pages 69{73, July 1985.
  20. C. Lengauer. Loop parallelization in the polytope model. In CONCUR '93, Springer Lecture Notes in Computer Science, 1993.
  21. G. Malcolm. Algebraic Data Types and Program Transformation. PhD thesis, Rijk- suniversiteit Groningen, September 1990.
  22. 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.
  23. 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.
  24. C. Morgan. Programming from Speci cations. Prentice-Hall International, 1990.
  25. A.G. Ranade. Fluent Parallel Computation. PhD thesis, Yale University, 1989.
  26. P. Roe. Parallel Programming Using Functional Languages. PhD thesis, Department of Computer Science, University of Glasgow, February 1991.
  27. P. Roe. Derivation of e cient data parallel programs. Technical report, Queensland University of Technology, December 1993.
  28. D. Sands. Complexity analysis for a higher-order language. Technical report, Depart- ment of Computing, Imperial College, Technical Report 88/14, London, December 1988.
  29. D. Sands. Calculi for Time Analysis of Functional Programs. PhD thesis, Imperial College, London, September 1990.
  30. D.B. Skillicorn. Architecture-independent parallel computation. IEEE Computer, 23(12):38{51, December 1990.
  31. D.B. Skillicorn. Models for practical parallel computation. International Journal of Parallel Programming, 20(2):133{158, April 1991. Actually appeared in 1992.
  32. L. Snyder. Type architectures, shared memory and the corollary of modest potential. Annual Review of Computer Science 1986, 1:289{317, 1987.
  33. L.G. Valiant. Optimally universal parallel computers. Phil. Trans. Royal Society Lond. Series A, 326:373{376, 1988.
  34. L.G. Valiant. A bridging model for parallel computation. Communications of the ACM, 33(8):103{111, August 1990.
  35. 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.