Abstract
Pick up a textbook on functional programming. Somewhere amidst the introductory remarks the author will almost certainly claim that functional languages are well suited for programming parallel computers. But are they? Not, it would seem, without the use of annotations to indicate where parallel evaluation should be performed. Such annotations have at least two advantages over a laissez-faire approach to parallelism. Firstly, they make it easier to reason about the program’s behaviour when it is run on a parallel machine. The annotated program describes both what is to be computed and how it is to be done, while maintaining a clean separation between the two aspects. Secondly, annotations mean that the compiler does not have to tackle the difficult problem of determining a suitable parallel evaluation strategy for the program. That remains the programmer’s responsibility.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
L. Augustsson and T. Johnsson. Parallel Graph Reduction with the (v,G)-machine. In Proceedings of the 1989 Conference on Functional Programming Languages and Computer Architecture, pages 202–213. ACM Press, September 1989.
L. Augustsson and T. Johnsson. The Chalmers Lazy-ML Compiler. Computer Journal, 32(2):127–141, April 1989.
C. Clack and S. L. Peyton Jones. The Four-Stroke Reduction Engine. In Proceedings of the 1986 ACM Symposium on LISP and Functional Programming, pages 220–232. ACM Press, August 1986.
D. L. Eager, J. Zahorjan, and E. D. Lazowska. Speedup Versus Efficiency in Parallel Systems. Technical Report 86-12, Department of Computational Science, University of Saskatchewan, August 1986.
A. Gibson and W. Rytter. Efficient Parallel algorithms. Cambridge University Press, 1988.
P. Hudak. Para-functional Programming in Haskell. In B. K. Szymanski, editor, Parallel Functional Languages and Compilers, chapter 5, pages 159–196. Addison-Wesley (Reading), 1991.
P. Hudak, S. L. Peyton Jones, Arvind, B. Boutel, J. Fairbairn, J. Fasel, M. Guzman, K. Hammond, J. Hughes, T. Johnsson, R. Kieburtz, R. S. Nikhil, W. Partain, and J. Peterson. Report on the Functional Programming Language Haskell, Version 1.2. SIGPLAN Notices, 27(5), May 1992.
P. H. J. Kelly. Functional Programming for Loosely-Coupled Multiprocessors. MIT Press, 1989.
S. L. Peyton Jones. The Implementation of Functional Programming Languages. Prentice-Hall, 1987.
R. Plasmeijer and M. van Eekelen. Functional Programming and Parallel Graph Rewriting. Addison Wesley, 1993.
P. Roe. Parallel Programming Using Functional Languages. PhD thesis, University of Glasgow, April 1991.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1994 British Computer Society
About this chapter
Cite this chapter
Runciman, C., Wakeling, D. (1994). Profiling Parallel Functional Computations (Without Parallel Machines). In: O’Donnell, J.T., Hammond, K. (eds) Functional Programming, Glasgow 1993. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3236-3_19
Download citation
DOI: https://doi.org/10.1007/978-1-4471-3236-3_19
Publisher Name: Springer, London
Print ISBN: 978-3-540-19879-6
Online ISBN: 978-1-4471-3236-3
eBook Packages: Springer Book Archive