Skip to main content
Log in

Y-Invalidate: A New Protocol for Implementing Weak Consistency in DSM Systems

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

In this work we propose and implement a new variant of the well-known write invalidate protocol called “Y-invalidate.” Whereas the former protocol required that every copy of a page be invalidated every time that page is updated, our variant invalidates a copy of a page at process A only at the next synchronization point which is relevant to Aand or if the copy was modified by the owner's process after the page was copied to A. We thus avoid invalidating copies of pages that were modified but never read after modification, and avoid, of course, the associated overhead. Y-Invalidate is basically a weak-consistency protocol. Its main advantage is that it implements weak consistency without the need to “merge” copies of a page that were updated in different machines. To the best of our knowledge, this is the first variant of weak consistency protocols which does not “merge” multiple copies of pages. Unlike other variants of weak consistency, Y-invalidate supports implicit synchronization points in the program by invalidating copies of shared memory pages that are referenced by while-loops. In this way, Y-invalidate approximates strict consistency. The Y-invalidate protocol was implemented in the ParC system, which is a powerful parallel extension of the C language. The ParC compiler was modified to detect some of the implicit synchronization points in the source code. Experimental results show significant improvement compared to both the traditional write-invalidate protocol and weak consistency.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

REFERENCES

  1. Y. Ben-Asher, D. G. Feitelson, and L. Rudolph, Parc: An Extension of c for Shared Memory Parallel Processing, Software practice & Experience, 26(5):581-612 (1996).

    Google Scholar 

  2. J. K. Bennett, J. B. Carter, and W. Zwaenepoel, Munin: Distributed Shared Memory Based on Type-Specific Memory Coherence. In Proc. of the Second ACM SIGPLAN Symp. on Principles and Practice of Parallel Programming (PPOPP'90), pp. 168-177 (March 1990).

  3. B. N. Bershad, M. J. Zekauskas, and W. A. Sawdon, The Midway Distributed Shared Memory System. In Proc. of the 38th IEEE Int'l Computer Conf. (COMPCON Spring'93), pp. 528-537 (February 1993).

  4. R. D. Blumofe, M. Frigo, C. F. Joerg, C. E. Leiserson, and K. H. Randall, Dag-Consistent Distributed Shared Memory. In Proc. of the 10th Int'l Parallel Processing Symp. (IPPS'96), pp. 132-141 (April 1996).

  5. W. J. Bolosky, M. L. Scott, R. P. Fitzgerald, R. J. Fowler, and A. L. Cox, NUMA Policies and Their Relation to Memory Architecture. In Intl. Conf. Architect. Support for Prog. Lang. & Operating Syst., No. 4, pp. 212-221 (April 1991).

  6. R. C. Chen and P. Dasgupta, Implementing Consistency Control Mechanisms in the Clouds Distributed Operating System. In Proc. of the 11th Int'l Conf. on Distributed Computing Systems (ICDCS-11) (May 1991).

  7. K. Gharachorloo, D. E. Lenoski, J. Laudon, P. Gibbons, A. Gupta, and J. L. Hennessy, Memory Consistency and Event Ordering in Scalable Shared-Memory Multiprocessors. In Proc. of the 17th Annual Int'l Symp. on Computer Architecture (ISCA'90), pp. 15-26 (May 1990).

  8. L. Iftode, J. P. Singh, and K. Li, Scope Consistency: A Bridge Between Release Consistency and Entry Consistency. In Proc. of the 8th ACM Annual Symp. on Parallel Algorithms and Architectures (SPAA'96), pp. 277-287 (June 1996).

  9. P. Keleher, Lazy Release Consistency for Distributed Shared Memory, Ph.D. thesis, Department of Computer Science, Rice University (December 1994).

  10. P. Keleher, S. Dwarkadas, A. L. Cox, and W. Zwaenepoel, Treadmarks: Distributed Shared Memory on Standard Workstations and Operating Systems. In Proc. of the Winter 1994 USENIX Conference, pp. 115-131 (January 1994).

  11. L. Lamport, How to Make a Multiprocessor Computer that Correctly Executes Multiprocess Programs, IEEE Transactions on Computers, C-28(9):690-691 (September 1979).

    Google Scholar 

  12. K. Li, Ivy: A Shared Virtual Memory System for Parallel Computing. In Proc. of the 1988 Int'l Conf. on Parallel Processing (ICPP'88), Vol. II, pp. 94-101 (August 1988).

    Google Scholar 

  13. R. J. Lipton and J. S. Sandberg, Pram: A Scalable Shared Memory, Technical Report CSTR-180-88, Dept. of Computer Science, Princeton University (September 1988).

  14. B. Nitzberg and V. Lo, Distributed Shared Memory: A Survey of Issues and Algorithms, IEEE Computer, 81(8):52-60 (August 1991).

    Google Scholar 

  15. S. Pakin, M. Lauria, and A. Chien, High Performance Messaging on Workstations: Illinois Fast Messages (fm) for Myrine. In Super Computing (December 1995).

  16. M. Raynal, Algorithms for Mutual Exclusion, The MIT Press (1986).

  17. D. J. Scales, K. Gharachorloo, and C. A. Thekkath, Shasta: A Low Overhead, Software-Only Approach for Supporting Fine-Grain Shared Memory. In Proc. of the 7th Symp. on Architectural Support for Programming Languages and Operating Systems (ASPLOSVII), pp. 174-185 (October 1996).

  18. S. Woo, M. Ohara, E. Torrie, J. Singh, and A. Gupta, The Splash-2 Programs: Characterization and Methodological Considerations. In Proceedings of the 22nd International Symposium on Computer Architecture, pp. 24-38 (1995).

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Ben-Asher, Y., Podvolny, D. Y-Invalidate: A New Protocol for Implementing Weak Consistency in DSM Systems. International Journal of Parallel Programming 29, 583–606 (2001). https://doi.org/10.1023/A:1013190403622

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1013190403622

Navigation