Exploiting Implicit Parallelism in Functional Programs with SLAM

  • John Sargeant
  • Chris Kirkham
  • Ian Watson
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2011)


An effective execution model is a vital component of any general-purpose implicitly parallel programming system. We introduce SLAM (Spreading Load with Active Messages), an execution model which overcomes many of the problems with previous approaches. SLAM is effcient enough to operate at low granularity without hardware support, andhas other necessary properties. Compiling for SLAM presents an unusual set of problems, and we describe how this is done from UFOLite, a simplified version of the United Functions and Objects programming language. Linear speedups are obtained for a program with irregular, fine-grain, parallelism on stock hardware.


Load Balance Shared Memory Garbage Collection Functional Program Execution Model 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    J. Sargeant: Uniting Functional and Object-Oriented Programming, International Symposium on Object Technologies for Advanced Software, volume 742 of LNCS, pages 1–26. Springer-Verlag, 1993Google Scholar
  2. 3.
    J. Sargeant, C.C. Kirkham, S. Anderson: Towards a Computational Model for UFO proc. PACT94, Montreal, Canada, IFIP transactions A-50, North Holland, August 1994Google Scholar
  3. 4.
    J-L. Gaudiot & L. Bic (editors):Advanced Topics in Data Flow Computing, published by Prentice-Hall, 1991.Google Scholar
  4. 5.
    Arvind & D.E. Culler: Managing Resources in a Parallel Machine, Fifth Generation Computer Architectures, J.V. Woods ed., pages 103–121, North Holland 1986.Google Scholar
  5. 6.
    C.A. Ruggiero & J. Sargeant, Control of Parallelism in the Manchester Dataflow Machine, in Proc. 1987 Conference on Functional Programming Languages andComputer Architecture, volume 274 of LNCS 274, pages 1–15, Springer-Verlag, 1987.Google Scholar
  6. 7.
    E. Mohr, A. Kranz, R.H. Halstead: Lazy Task Creation: A Technique for Increasing the Granularity of Parallel Programs ACM Conference on Lisp and Functional Programming, Nice, France, June 1990.Google Scholar
  7. 8.
    P.S. Wong: Parallel Evaluation of Functional Programs. PhD thesis, Department of Computer Science, University of Manchester 1993.Google Scholar
  8. 9.
    S. Hwang: Dynamic Control of Parallel Task Granularity PhD thesis, Department of Computer Science, University of Manchester 1996.Google Scholar
  9. 10.
    T. von Eicken, D.E. Culler, S.C. Goldstein & K.E. Schauser: Active Messages: a Mechanism for Integrated Communication and Computation. proc 19th International Symposium on Computer Architecture, pages 256–266, 1992.Google Scholar
  10. 11.
    J. Sargeant: The SLAM Report, draft technical report, department of Computer Science, University of Manchester, 1997. Linkedfrom the UFO home page, [2].Google Scholar
  11. 12.
    N.G. Shivaratri & P. Krueger: Two Adaptive Location Policies for Global Scheduling Algorithms 10th International Conference on DistributedComputing Systems, June 1990.Google Scholar
  12. 13.
    J. R. Seward, J. Sargeant, S.J. Hooton, C.C. Kirkham & I. Watson: Optimised Compilation of UFO Proceedings of RWC97, Tokyo, Japan, 1997.Google Scholar
  13. 14.
    J. Sargeant: Improving Compilation of Implicit Parallel Programs by Using Runtime Information, Proc. Workshop on Compilation of Symbolic Languages for Parallel Computers, San Diego, 1991, Argonne National Laboratory tech. report ANL-91/34, pages 129-148.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • John Sargeant
    • 1
  • Chris Kirkham
    • 1
  • Ian Watson
    • 1
  1. 1.Department of Computer ScienceUniversity of ManchesterManchesterUK

Personalised recommendations