skip to main content
10.1145/232627.232650acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
Article
Free Access

A provable time and space efficient implementation of NESL

Published:15 June 1996Publication History

ABSTRACT

In this paper we prove time and space bounds for the implementation of the programming language NESL on various parallel machine models. NESL is a sugared typed λ-calculus with a set of array primitives and an explicit parallel map over arrays. Our results extend previous work on provable implementation bounds for functional languages by considering space and by including arrays. For modeling the cost of NESL we augment a standard call-by-value operational semantics to return two cost measures: a DAG representing the sequential dependence in the computation, and a measure of the space taken by a sequential implementation. We show that a NESL program with w work (nodes in the DAG), d depth (levels in the DAG), and s sequential space can be implemented on a p processor butterfly network, hypercube, or CRCW PRAM using O(w/p + d log p) time and O(s + dp log p) reachable space.1 For programs with sufficient parallelism these bounds are optimal in that they give linear speedup and use space within a constant factor of the sequential space.

References

  1. 1.G. Blelloch, G. L. Miller, and D. Talmor. Developing a practical projection-based parallel Delaunay algorithm. In Proceedings A CM Symposium on Computational Geometry, May 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2.Guy Blelloch, Phil Gibbons, and Yossi Matias. Provably efficient scheduling for languages with fine-grained parallelism. In A CM Symposium on Parallel Algorithms and Architectures, July 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3.Guy Blelloch and John Greiner. Parallelism in sequential functional languages. In Proceedings 7th International Conference on Functional Programming Languages and Computer Architecture, pages 226-237, June 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4.Guy Blelloch and Girija Narlikar. A comparison of two n-body algorithms. In Dimacs implementation challenge workshop, October 1994.Google ScholarGoogle Scholar
  5. 5.Guy E. Blelloch. Vector Models for Data-Parallel Computing. MIT Press, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6.Guy E. Blelloch. NESL: A nested data-parallel language (version 3.1). Technical Report CMU-CS-95-170, Carnegie Mellon University, 1995.Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7.Guy E. Bleiloch. Programming parallel algorithms. Communications of the A CM, March 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8.Guy E. Blelloch, Siddhartha Chatterjee, Jonathan C. Hardwick, jay Sipelstein, and Marco Zagha. Implementation of a portable nested data-parallel language. Journal of Parallel and Distributed Computing, 21(1):4-14, April 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.Guy E. Blelloch and Jonathan C. Hardwick. Class notes: Programming parallel algorithms. Technical Report CMU-CS-93-115, Carnegie Mellon University, February 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10.R. D. Blumofe and C. E. Leiserson. Space-efficient scheduling of multithreaded computations. In Proc. 25th A CM Symp. on Theory of Computing, pages 362- 371, May 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11.F. Warren Burton. Storage management in virtual tree machines. IEEE Trans. on Computers, 37(3):321-328, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12.F. Warren Burton and David J. Simpson. Space efficient execution of deterministic parallel programs. Manuscript, December 1994.Google ScholarGoogle Scholar
  13. 13.Matthias Felleisen and Daniel P. Friedman. A calculus for assignments in higher-order languages. In Proceedings 13th A CM Symposium on Principles of Programming Languages, pages 314-325, January 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14.Cormac Flanagan and Mattias Felleisen. The semantics of future and its use in program optimization. In Proceedings 22nd A CM Symposium on Principles of Programming Languages, pages 209-220, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15.Joseph Gil and Yossi Matias. Fast and efficient simulations among CRCW PRAMs. Journal of Parallel and Distributed Computing, 23(2):135-148, November 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16.Allan Gottlieb, B. D. Lubachevsky, and Larry Rudolph. Basic techniques for the efficient coordination of very large numbers of cooperating sequential processors. A CM Transactions on Programming Languages and Systems, 5(2), April 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 17.John Greiner. A comparison of parallel algorithms for connected components. In Proceedings 6th A CM Symposium on Parallel Algorithms and Architectures, pages 16-25, June 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18.John Greiner and Guy E. BlelIoch. A provably timeefficient parallel implementation of full speculation. In Proceedings 23rd A CM Symposium on Principles of Programming Languages, pages 309-321, January 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19.High Performance Fortran Forum. High Performance Fortran Language Specification, May 1993.Google ScholarGoogle Scholar
  20. 20.Paul Hudak. A semantic model of reference counting and its abstraction (detailed summary). In Proceedings A CM Conference on LISP and Functional Programmmg, pages 351-363, August 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21.Paul Hudak and Steve Anderson. Pomset interpretations of parallel functional programs. In Proceedings 3rd International Conference on Functional Programming Languages and Computer Architecture, number 274 in Lecture Notes in Computer Science, pages 234- 256. Springer-Verlag, September 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22.Joseph J~J~. An Introduction to Parallel Algorzthms. Addison-Wesley, Reading, Mass., 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23.R. M. Karp and V. Ramachandran. Parallel algorithms for shared memory machines. In J. Van Leeuwen, editor, Handbook of Theoretical Computer Science ~ Volume A: Algorithms and Complexity. MIT Press, Cambridge, Mass., 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 24.Yossi Matias and Uzi Vishkin. On parallel hashing and integer sorting. Journal of Algorithms, 12(4):573-606, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25.Greg Morrisett, Matthias Felleisen, and Robert Harper. Abstract models of memory management. In Proceedings of the $ymposzum on Functional Programmzng and Computer Architecture, pages 66-77, June 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. 26.Abhiram G. Ranade. Fluent Parallel Computation. PhD thesis, Yale University, New Haven, CT, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. 27.Paul Roe. Parallel Programming using Functional Languages. PhD thesis, Department of Computing Science, University of Glasgow, February 1991.Google ScholarGoogle Scholar
  28. 28.J. R. Rose and G. L. Steele Jr. C*: An extended C language for data parallel programming. In Proceedings Second International Uonference on Supercomputing, Vol. 2, pages 2-16, May 1987.Google ScholarGoogle Scholar
  29. 29.Mads Rosendahl. Automatic complexity analysis. In Proceedings dth International Conference on Functional Programming Languages and Computer Architecture. Springer-Verlag, September 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. 30.David Sands. Calculi for Time Analysis of Functional Programs. PhD thesis, University of London, Imperial College, September 1990.Google ScholarGoogle Scholar
  31. 31.David B. Skillicorn and W. Cat. A cost calculus for parallel functional programming. Journal of Parallel and Distributed Computing, 28(1):65-83, July 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. 32.Dan Suciu and Val Tannen. Efficient compilation of high-level data parallel algorithms, in Proceedings 6th A UM Symposium on Parallel Algorithms and Architectures, pages 57-66, June 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. 33.Wolf Zimmermann. Complexity issues in the design of functional languages with explicit parallelism. In Proceedings International Conference on Computer Languages, pages 34-43, 1992.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. A provable time and space efficient implementation of NESL

                Recommendations

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in
                • Published in

                  cover image ACM Conferences
                  ICFP '96: Proceedings of the first ACM SIGPLAN international conference on Functional programming
                  June 1996
                  273 pages
                  ISBN:0897917707
                  DOI:10.1145/232627

                  Copyright © 1996 ACM

                  Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 15 June 1996

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • Article

                  Acceptance Rates

                  ICFP '96 Paper Acceptance Rate25of83submissions,30%Overall Acceptance Rate333of1,064submissions,31%

                  Upcoming Conference

                  ICFP '24

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader