Skip to main content

I-Structures: Data structures for parallel computing

  • Arrays
  • Conference paper
  • First Online:
Book cover Graph Reduction (GR 1986)

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

Included in the following conference series:

Abstract

It is difficult simultaneously to achieve elegance, efficiency and parallelism in functional programs that manipulate large data structures. We demonstrate this through careful analysis of program examples using three common functional data-structuring approaches—lists using Cons and arrays using Update (both fine-grained operators), and arrays using make-array (a “bulk” operator). We then present I-structures as an alternative, defining precisely the parallel operational semantics of Id, a language with I-structures. We show elegant, efficient and parallel solutions for the program examples in Id. I-structures make the language non-functional, but do not raise determinacy issues. Finally, we show that even in the context of purely functional languages, I-structures are invaluable for implementing functional data abstractions.

This research was done at the MIT Laboratory for Computer Science. Funding for this project is provided in part by the Advanced Research Projects Agency of the Department of Defense under the Office of Naval Research contract N00014-84-K-0099.

Keshav Pingali was also supported by an IBM Faculty Development Award.

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. William B. Ackerman. A Structure Memory for Data Flow Computers. Master's thesis, Technical Report TR-186, MIT Lab. for Computer Science, Cambridge, MA 02139, 1978.

    Google Scholar 

  2. J.R. Allen and K. Kennedy. PFC: A Program to convert FORTRAN to Parallel Form. Technical Report MASC-TR82-6, Rice University, Houston, TX, March 1982.

    Google Scholar 

  3. Arvind and David Ethan Culler. Dataflow architectures. In Annual Reviews in Computer Science, pages 225–253, Annual Reviews Inc., Palo Alto, CA, 1986.

    Google Scholar 

  4. Arvind and Robert E. Thomas. I-structures: An Efficient Data Type for Parallel Machines. Technical Report TM 178, Computation Structures Group, MIT Lab. for Computer Science, Cambridge, MA 02139, September 1980.

    Google Scholar 

  5. Henk Barendregt and Marc van Leeuwen. Functional Programming and the Language TALE. Technical Report TR 412, Mathematical Institute, Budapestlaan 6, 3508 TA Utrecht, The Netherlands, 1985.

    Google Scholar 

  6. J. Driscoll, N. Sarnak, D. Sleator, and R. Tarjan. Making data structures persistent. In Proc. 18th Annual ACM Symposium on Theory of Computing, Berkeley, CA, pages 109–121, May 1986.

    Google Scholar 

  7. Kim P. Gostelow and Robert E. Thomas. A view of dataflow. AFIPS Conference Proceedings, 48:629–636, June 1979.

    Google Scholar 

  8. Paul Hudak. A semantic model of reference counting and its abstraction. In Proc. 1986 ACM Conf. on Lisp and Functional Programming, MIT, Cambridge, MA, pages 351–363, August 1986.

    Google Scholar 

  9. Thomas Johnsson. Lambda lifting: transforming programs to recursive equations. In Springer-Verlag LNCS 201 (Proc. Functional Programming Languages and Computer Architecture, Nancy, France), September 1985.

    Google Scholar 

  10. Robert M. Keller. FEL (Function Equation Language) Programmer's Guide. Technical Report AMPS Technical Memorandum No. 7, University of Utah, Department of Computer Science, April 1983.

    Google Scholar 

  11. David J. Kuck, R.H. Kuhn, D.A. Padua, B. Leasure, and M. Wolfe. Dependence graphs and compiler optimizations. In Proc. 8th ACM Symp. on Principles of Programming Languages, pages 207–218, January 1981.

    Google Scholar 

  12. Rishiyur S. Nikhil. Id Nouveau Reference Manual. Technical Report (Forthcoming), Computation Structures Group, MIT Lab. for Computer Science, Cambridge, MA 02139, 1987.

    Google Scholar 

  13. Rishiyur S. Nikhil, Keshav Pingali, and Arvind. Id Nouveau. Technical Report CSG Memo 265, Computation Structures Group, MIT Lab. for Computer Science, Cambridge, MA 02139, July 1986.

    Google Scholar 

  14. David A. Padua and Michael J. Wolfe. Advanced compiler optimizations for super-computers. Communications of the ACM, 29(12), December 1986.

    Google Scholar 

  15. Kenneth R. Traub. A Compiler for the MIT Tagged Token Dataflow Architecture. Master's thesis, Technical Report TR-370, MIT Lab. for Computer Science, Cambridge, MA 02139, August 1986.

    Google Scholar 

  16. Philip Wadler. Listlessness is better than laziness: Lazy evaluation and garbage collection at compile time. In Proc. 1984 ACM Conf. on Lisp and Functional Programming, Austin, TX, pages 45–52, August 1984.

    Google Scholar 

  17. Philip Wadler. A new array operation for functional languages. In Proceedings of the Graph Reduction Workshop, Santa Fe, New Mexico, October 1986, 1987.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Joseph H. Fasel Robert M. Keller

Rights and permissions

Reprints and permissions

Copyright information

© 1987 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Arvind, Nikhil, R.S., Pingali, K.K. (1987). I-Structures: Data structures for parallel computing. In: Fasel, J.H., Keller, R.M. (eds) Graph Reduction. GR 1986. Lecture Notes in Computer Science, vol 279. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-18420-1_65

Download citation

  • DOI: https://doi.org/10.1007/3-540-18420-1_65

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-18420-1

  • Online ISBN: 978-3-540-47963-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics