Skip to main content

Managing side effects on shared data

  • Conference paper
  • First Online:
Book cover Parallel Symbolic Computing: Languages, Systems, and Applications (PSC 1992)

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

Included in the following conference series:

  • 127 Accesses

Abstract

We are developing a toolbox for writing symbolic programs that may be executed on sequential and parallel machines without modification. The toolbox is designed for use by programmers who are not experienced in parallel programming, and consists of parallelism abstractions and data-sharing abstractions. Parallelism abstractions represent common, time-consuming operations that offer good speedup potentials for parallel implementations. Data-sharing abstractions support common side-effecting operations on shared objects, simplifying the coding of a large class of algorithms that modify shared data structures in a parallel implementation. In this paper we describe the data-sharing abstractions of the toolbox, and show how the toolbox may be used to construct efficient parallel programs without exposing the programmer to low-level parallel programming details, which are hidden by the toolbox implementation.

Ho and Hilfinger are supported by NSF Grant CCR-8451213.

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. Paul S. Barth. Atomic Data Structures for Parallel Computing. PhD thesis, MIT Laboratory for Computer Science, Cambridge, MA, March 1992.

    Google Scholar 

  2. Andrew Andai Chien. Concurrent Aggregates(CA): An Object-Oriented Language for Fine-Grained Message-Passing Machines. PhD thesis, MIT Artificial Intelligence Laboratory, Cambridge, MA, July 1990.

    Google Scholar 

  3. Hans Werner Guesgen. CONSAT: A System for Constraint Satisfaction. Research Notes in Artificial Intelligence. Morgan Kaufmann, San Mateo, CA, 1989.

    Google Scholar 

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

    Article  MATH  Google Scholar 

  5. Robert H. Halstead, Jr. An assessment of Multilisp: Lessons from experience. International Journal of Parallel Processing, 15(6):459–501, 1986.

    MATH  Google Scholar 

  6. Maurice Herlihy. A methodology for implementing highly concurrent data objects. Technical Report CRL 91/10, Digital Equipment Corporation Cambridge Research Laboratory, Cambridge, MA, October 1991.

    Google Scholar 

  7. Kinson Ho. High-level Abstractions for Symbolic Parallel Programming. PhD thesis, Computer Science Division (EECS), University of California, Berkeley, CA, 1993. To appear.

    Google Scholar 

  8. Kinson Ho, Paul N. Hilfinger, and Hans W. Guesgen. Optimistic discrete parallel relaxation. In Proceedings of the 13th International Joint Conference on Artificial Intelligence, page ??, Chambery, Savoie, France, August 1993. To appear.

    Google Scholar 

  9. L. V. Kale. The Chare Kernel parallel programming language and system. In The Proceedings of the International Conference on Parallel Processing, volume II, pages 17–25, St. Charles, IL, August 1990.

    Google Scholar 

  10. B. W. Lampson and D. D. Redell. Experience with processes and monitors in Mesa. Communications of the ACM, 23(2), February 1980.

    Google Scholar 

  11. James R. Larus. Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. PhD thesis, Computer Science Division (EECS), University of California, Berkeley, CA, May 1989.

    Google Scholar 

  12. Martic C. Rinard, Daniel J. Scales, and Monica S. Lam. Jade: A high-level, machine-independent language for parallel programming. IEEE Computer, 26(6):28–38, June 1993.

    Google Scholar 

  13. Charles L. Seitz. The Cosmic Cube. Communications of the ACM, 28(1):22–33, January 1985.

    Article  MathSciNet  Google Scholar 

  14. Guy L. Steele Jr. Making asynchronous parallelism safe for the world. In Conference Record of the Seventeenth Annual ACM Symposium on Principles of Programming Languages, pages 218–231, San Francisco, CA, January 1990.

    Google Scholar 

  15. Edward Wang and Paul N. Hilfinger. Analysis of recursive types in Lisp-like languages. In Proceedings of the 1992 ACM Conference on Lisp and Functional Programming, pages 216–225, San Francisco, CA, June 1992.

    Google Scholar 

  16. Jeannette M. Wing and Chun Gong. A library of concurrent objects and their proofs of correctness. Technical Report CMU-CS-90-151, School of Computer Science, Carnegie-Mellon University, Pittsburgh, PA, July 1990.

    Google Scholar 

  17. Katherine Anne Yelick. Using Abstraction in Explicitly Parallel Programs. PhD thesis, MIT Laboratory for Computer Science, Cambridge, MA, July 1991.

    Google Scholar 

  18. Benjamin Zorn, Kinson Ho, James Larus, Luigi Semenzato, and Paul Hilfinger. Multiprocessing extensions in SPUR Lisp. IEEE Software, 6(4):41–49, July 1989.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Robert H. Halstead Jr. Takayasu Ito

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ho, K., Hilfinger, P.N. (1993). Managing side effects on shared data. In: Halstead, R.H., Ito, T. (eds) Parallel Symbolic Computing: Languages, Systems, and Applications. PSC 1992. Lecture Notes in Computer Science, vol 748. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0018654

Download citation

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

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57396-8

  • Online ISBN: 978-3-540-48133-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics