Skip to main content

Lazy thread and task creation in parallel graph-reduction

  • Conference paper
  • First Online:
Implementation of Functional Languages (IFL 1997)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1467))

Included in the following conference series:

Abstract

Lightweight threads can be used to cover latencies occurring in distributed-memory implementations of declarative programming languages. To keep the costs of thread management low, this paper proposes two techniques: first, to distinguish locally scheduled threads from globally distributed tasks; and second, to create both threads and tasks lazily. The paper focuses on the integration of these techniques into compiled graph-reduction, which was neglected by other researchers; in particular, their approach prohibits both tail call optimization and the use of the push-enter model of function evaluation.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Guy E. Bleiloch, Phillip B. Gibbons, and Yossi Matias. Provably efficient scheduling for languages with fine-grained parallelism. In Proceedings of the Symposium on Parallel Algorithms and Architectures, pages 1–12, 1995.

    Google Scholar 

  2. Robert D. Blumofe, Christopher F. Joerg, Bradley C. Kuszmaul, Charles E. Leiserson, Keith H. Randall, and Yuli Zhou. Cilk: An efficient multithreaded runtime system. In Proceedings of the 5th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 207–216, 1995.

    Google Scholar 

  3. Manuel M. T. Chakravarty. Integrating multi-threading into the Spineless Tagless G-machine. In David N. Turner, editor, Functional Programming, Glasgow 1995, London, 1996. University of Glasgow, Springer-Verlag.

    Google Scholar 

  4. Manuel M. T. Chakravarty. On the Massively Parallel Execution of Declarative Programs. PhD thesis, Technische Universität Berlin, Fachbereich Informatik, 1997.

    Google Scholar 

  5. Manuel M. T. Chakravarty, Yike Guo, Martin Köhler, and Hendrik C. R. Lock. Goffin: Higher-order functions meet concurrent constraints. Science of Computer Programming, 30(1–2): 157–199, 1998.

    Article  MATH  MathSciNet  Google Scholar 

  6. David E. Culler, Seth Copen Goldstein, Klaus Erik Schauser, and Thorsten von Eicken. TAM—a compiler controlled threaded abstract machine. Journal of Parallel and Distributed Computing, 18: 347–370, 1993.

    Article  Google Scholar 

  7. Cormac Flanagan and Rishiyur S. Nikhil. pHluid: The design of a parallel functional language implementation on workstations. In Proceedings of the ACM SIGPLAN International Conference on Functional Programming. ACM Press, 1996.

    Google Scholar 

  8. Ian Foster, Carl Kesselman, and Steven Tuecke. The Nexus approach to integrating multithreading and communication. Journal of Parallel and Distributed Computing, 37(1): 70–82, 1996.

    Article  Google Scholar 

  9. Guang R. Gao, Lubomir Bic, and Jean-Luc Gaudiot, editors. Advanced Topics in Dataflow Computing and Multithreading. IEEE Computer Society Press, 1995.

    Google Scholar 

  10. Seth Copen Goldstein, Klaus Erik Schauser, and David E. Culler. Enabling primitives for compiling parallel languages. In Boleslaw K. Szymanski and Balaram Sinharoy, editors, Languages, Compilers and Run-Time Systems for Scalable Computers, chapter 12, pages 153–168. Kluwer Academic Publishers, 1996.

    Google Scholar 

  11. Seth Copen Goldstein, Klaus Erik Schauser, and David E. Culler. Lazy threads: Implementing a fast parallel call. Journal of Parallel and Distributed Computing, 1997. Submitted; revised version of [10].

    Google Scholar 

  12. Robert H. Halstead. Multilisp: A language for concurrent symbolic computation. ACM Transactions on Programming Languages and Systems, 7(4): 501–538, 1985.

    Article  MATH  Google Scholar 

  13. Herbert H.J. Hum et al. A design study of the EARTH multiprocessor. In Lubomir Bic, Wim Böhm, Paraskevas Evripidou, and Jean-Luc Gaudiot, editors, Proceedings of the IFIP WG 10.3 Working Conference on Parallel Architectures and Compilation Techniques, PACT '95, pages 59–68. ACM Press, 1995.

    Google Scholar 

  14. David A. Kranz, Robert H. Halstead, and Eric Mohr. Mul-T: A high-performance parallel lisp. In ACM SIGPLAN'89 Conference on Programming Languages Design and Implementation, pages 81–90. ACM Press, 1989.

    Google Scholar 

  15. A. Krishnamurthy, D. E. Culler, A. Dusseau, S. C. Goldstein, S. Lumetta, T. von Eicken, and K. Yelick. Parallel programming in Split-C. In Bob Borchers, editor, Proceedings of the Supercomputing '93 Conference, pages 262–273. IEEE Computer Society Press, November 1993.

    Google Scholar 

  16. Eric Mohr, David A. Kranz, and Robert H. Halstead, Jr. Lazy task creation: A technique for increasing the granularity of parallel programs. IEEE Transactions on Parallel and Distributed Systems, 2(3): 264–280, July 1991.

    Article  Google Scholar 

  17. Simon L. Peyton Jones. Implementing lazy functional languages on stock hardware: the Spineless Tagless G-machine. Journal of Functional Programming, 2(2), 1992.

    Google Scholar 

  18. P. W. Trinder, K. Hammond, H.-W. Loidl, and S. L. Peyton Jones. Algorithm + strategy = parallelism. Journal of Functional Programming, 1998. To appear.

    Google Scholar 

  19. P. W. Trinder, K. Hammond, J. S. Mattson Jr, A. S. Partridge, and S. L. Peyton Jones. GUM: a portable parallel implementation of Haskell. In Proceedings of Programming Languages Design and Implementation, 1996.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Chris Clack Kevin Hammond Tony Davie

Rights and permissions

Reprints and permissions

Copyright information

© 1998 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Chakravarty, M.M.T. (1998). Lazy thread and task creation in parallel graph-reduction. In: Clack, C., Hammond, K., Davie, T. (eds) Implementation of Functional Languages. IFL 1997. Lecture Notes in Computer Science, vol 1467. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0055434

Download citation

  • DOI: https://doi.org/10.1007/BFb0055434

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-64849-9

  • Online ISBN: 978-3-540-68528-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics