Skip to main content
Log in

Cache coherence requirements for interprocess rendezvous

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

Abstract

Multiprocessors in which a shared bus is used by the processor to communicate with common memory are an emerging class of machines where there is a need to support parallel programming languages. A language construct that is found in a number of parallel programming languages to support synchronization and communication in the interprocess rendezvous. Shared-bus multiprocessor require a protocol to keep the date in their caches coherent. There are two major categories of these protocols: invalidation and write-boadcast. This paper examines the requirements for cache coherence protocols to support efficient interprocessor rendezvous. The approach taken is to examine the memory referencing patterns to the run-time data structures during rendezvous execution. The appropriate coherence protocol is shown to be a function of the processor scheduling strategy used by the run-time system at synchronzation points during the rendezvous. When processes migrate freely as a result of the scheduling strategy, invalidation protocols are found to be more efficient. When migration is restricted by the scheduler, write-broadcast protocols are more efficient.

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. F. Basket and J. L. Hennessy, Small shared-memory multiprocessors,Science 231:963–967 (February 1986).

    Google Scholar 

  2. C. G. Bell, Multis: A new class of multiprocessor computers,Science,228(4698):462–467 (April 1985).

    Google Scholar 

  3. G. Fielland and D. Rodgers, 32-bit computer system shares load equally among up to 12 processors,Electronics Design, pp. 153–168 (September 1984).

  4. E. C. Corporation,Multimax Technical Summary, 257 Cedar Hill Street, Marlboro, Massachusetts 01752, REV A edition (May 1985).

  5. P. Bitar and A. M. Despain, Multiprocessor cache synchronization, issues, innovations, evolution, inProc. of the 13th Int'l. Symp. on Computer Archit., pp. 424–433 (June 1986).

  6. J. Archibald and J. L. Baer, Cache coherence protocols: Evaluation using a multiprocessor simulation model,ACM Transactions on Computer Systems 4(4):273–298 (November 1986).

    Google Scholar 

  7. T. Lovett and S. Thakkar, The Symmetry multiprocessor system, inProc. of the 1988 Int.'l. Conf. on Parallel Processing, pp. 303–310 (August 1988).

  8. M. Annaratone and R. Rühl, Performance measurements on a commercial multiprocessor running parallel code, inProc. of the 16th Int'l. Symp. on Computer Archit., pp. 307–314 (June 1989).

  9. A. H. Karp and R. G. Babb, A comparison of 12 parallelfortran dialects,IEEE Software, pp. 52–67 (September 1988).

  10. A. Osterhaug,Guide to Parallel Programming, Sequent Computer Systems, Inc. (1985).

  11. R. H. Perrott,Parallel Programming, Addison-Wesley (1987).

  12. R. G. Babb II, ed.,Programming Parallel Processors, Addison-Wesley, Reading, Massachusetts (1988).

    Google Scholar 

  13. M. Kallstrom and S. S. Thakkar, Programming three parallel computers,IEEE Software, pp. 11–22 (January 1988).

  14. C. P. Thacker, L. C. Stewart, and E. H. Satterthwaite, Jr., Firefly: a multiprocessor workstation,IEEE Transactions on Computers 37(8):909–920 (August 1988).

    Google Scholar 

  15. IRIS-4D Series Owner's Guide, Silicon Graphics, Inc., Version 4.0, Document Number 007-320-040 edition (1989).

  16. The Series 10000 Personal Supercomputer, Apollo Computer Inc. (1988).

  17. T. Diede, C. F. Hagenmaier, G. S. Miranker, J. J. Rubinstein, and W. S. Worley, Jr., The Titan graphics supercomputer architecture,IEEE Computer, pp. 13–30 (September 1988).

  18. Ada Programming Language (ANSI-MIL-STD-1815A), Department of Defense, OUSD (R&D) (January 1983).

  19. N. H. Gehani and W. D. Roome, Concurrent C,Software Practice and Experience 16(9):821–844 (September 1986).

    Google Scholar 

  20. D. May, Occam,ACM SIGPLAN Notices 18(4):69–79, (April 1983).

    Google Scholar 

  21. G. R. Andrews, R. A. Olsson, M. Coffin, I. Elshoff, K. Nilson, T. Purdin, and G. Townsend, An overview of the SR language and implementation,ACM Transactions on Programming Languages and Systems 10(1):51–86 (January 1988).

    Google Scholar 

  22. M. L. Scott, Language support for loosely coupled distributed programs,IEEE Transactions on Software Engineering SE-13(1):88–103 (January 1987).

    Google Scholar 

  23. F. N. Parr and R. E. Strom, NIL: A high-level language for distributed systems programming,IBM Systems Journal 22 (sn1,2) (April 1983).

  24. S.J. Eggers and R. H. Katz, A characterization of sharing in parallel programs and its application to coherency protocol evaluation, inProc. of the 15th Int'l. Symp. on Computer Archit., pp. 373–382 (June 1988).

  25. S. J. Eggers and R. H. Katz, The effect of sharing on the cache and bus performance of parallel programs, inProc. of the Third Int'l. Conf. on Architectural Support for Programming Languages and Operating Systems (ASPLOS III), pp. 257–270 (April 1989).

  26. R. L. Sites and A. Agarwal, Multiprocessor cache analysis using ATUM, inProc. of the 15th Int'l. Symp. on Computer Archit., pp. 186–195 (June 1988).

  27. B. Beck and D. Olien, A parallel-programming process model,IEEE Software, pp. 63–72 (May 1989).

  28. R. H. Thomas and W. Crowther, The Uniform System: An approach to runtime support for large scale shared memory parallel processors, inProc. of the 1988 Int'l. Conf. on Parallel Processing, pp. 245–254 (August 1988).

  29. M. L. Scott, T. J. LeBlanc, and B. D. Marsh, Design rationale for Psyche, a generalpurpose multiprocessor operating system, inProc. of the 1988 Int'l. Conf. on Parallel Processing, pp. 255–262 (August 1988).

  30. R. P. Weicker, Dhrystone: A synthetic systems programming benchmark,Communications of the ACM 27(10):1013–1030 (October 1984).

    Google Scholar 

  31. G. Graunke and S. Thakkar, Synchronization algorithms for shared-memory multiprocessors,IEEE Computer, pp. 60–69 (June 1990).

  32. R. M. Clapp and T. N. Mudge, Ada on a hypercube, inProc. of The Third Conf. on Hypercube Concurrent Computers and Applications, pp. 399–408, Pasadena, California (January 1988).

  33. R. A. Volz and T. N. Mudge, Timing issues in the distributed execution of Ada programs,IEEE Transactions on Computers C-36(4):449–459 (April 1987).

    Google Scholar 

  34. R. A. Volz, T. N. Mudge, G. D. Buzzard, and P. Krishnan, Translation and execution of distributed Ada programs: Is it still Ada?,IEEE Transactions on Software Engineering SE-15(3):281–292 (March 1989).

    Google Scholar 

  35. R. M. Clapp and T. N. Mudge, A parallel language for a distributed-memory multiprocessor, inProc. of The Fourth Conf. on Hypercube Concurrent Computers and Applications, pp. 515–522, Monterey, California (March 1989).

    Google Scholar 

  36. J. D. Ichbiah, J. G. P. Barnes, J. C. Heliard, B. Krieg-Breckner, O. Roubine and B. A. Wichmann, Rationale for the design of the Ada programming language,ACM SIGPLAN Notices, Vol 14, No. 6 (June 1979).

  37. N. H. Gehani and W. D. Roome, Rendezvous facilities: Concurrent C and the Ada language,IEEE Transactions on Software Engineering SE-14(11):1546–1553 (November 1988).

    Google Scholar 

  38. R. A. Volz and T. N. Mudge, Instruction level mechanisms for accurate real-time task scheduling,IEEE Transactions on Computers C-36(8):988–993 (August 1987).

    Google Scholar 

  39. B. Beck, B. Kasten, and S. Thakkar, VLSI assist for a multiprocessor, inProc. of the Second Int'l. Conf. on Architectural Support for Programming Languages and Operating Systems (ASPLOS II), pp. 10–20 (October 1987).

  40. R. H. Katz, S. J. Eggers, D. Wood, C. L. Perkins, and R. Sheldon, Implementing a cache consistency protocol, inProc. of the 12th Int'l. Symp. on Computer Archit., pp. 276–283 (June 1985).

  41. M. S. Papamarcos and J. H. Patel, A low-overhead coherence solution for multiprocessors with private cache memories, inProc. of the 11th Int'l. Symp. on Computer Archit., pp. 348–354 (June 1984).

  42. R. R. Atkinson and E. M. McCreight, The Dragon processor, inProc. of the Second Int'l. Conf. on Architectural Support for Programming Languages and Operating Systems (ASPLOS II), pp. 65–69 (October 1987).

  43. J. K. Archibald, A cache coherence approach for large multiprocessor systems, inProc. of the 1988 Int'l. Conf. on Supercomputing, pp. 337–345. ACM Press (July 1988).

  44. M. Dubois, C. Scheurich, and F. A. Briggs, Synchronization, coherence, and event ordering in multiprocessors,IEEE Computer, pp. 9–21 (February 1988).

  45. L. Rudolph and Z. Segall, Dynamic decentralized cache schemes, inProc. of the 11th Int'l. Symp. on Computer Archit., pp. 340–347 (June 1984).

  46. S. S. Thakkar and M. Sweiger, Performance of an OLTP application on Symmetry multiprocessor system, inProc. of the 17th Int'l. Symp. on Computer Archit., pp. 228–238 (June 1990).

  47. P. Sweazy and A. J. Smith, A class of compatible cache consistency protocols and their support by the IEEE Futurebus, inProc. of the IEEE 13th Annual Int'l. Symp. on Computer Archit., pp. 414–423 (June 1986).

  48. D. R. Cheriton, G. A. Slavenburg, and P. D. Boyle, Software controlled caches in the VMP multiprocessor, inProc. of the 13th Int'l. Symp. on Computer Archit., pp. 366–374 (June 1986).

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Clapp, R.M., Mudge, T.N. & Winsor, D.C. Cache coherence requirements for interprocess rendezvous. Int J Parallel Prog 19, 31–51 (1990). https://doi.org/10.1007/BF01407863

Download citation

  • Received:

  • Revised:

  • Issue Date:

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

Key Words

Navigation