Skip to main content
Log in

Solutions and debugging for data consistency in multiprocessors with noncoherent caches

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

Abstract

We analyze two important problems that arise in shared-memory multiprocessor systems. Thestale data problem involves ensuring that data items in local memory of individual processors are current, independent of writes done by other processors.False sharing occurs when two processors have copies of the same shared data block but update different portions of the block. The false sharing problem involves guaranteeing that subsequent writes are properly combined. In modern architectures these problems are usually solved in hardware, by exploiting mechanisms for hardware controlled cache consistency. This leads to more expensive and nonscalable designs. Therefore, we are concentrating on software methods for ensuring cache consistency that would allow for affordable and scalable multiprocessing systems. Unfortunately, providing software control is nontrivial, both for the compiler writer and for the application programmer. For this reason we are developing a debugging environment that will facilitate the development of compiler-based techniques and will help the programmer to tune his or her application using explicit cache management mechanisms. We extend the notion of a race condition for IBM Shared Memory System POWER/4, taking into consideration its noncoherent caches, and propose techniques for detection of false sharing problems. Identification of the stale data problem is discussed as well, and solutions are suggested.

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. J. L. Hennessy and D. A. Patterson,Computer Architecture: A Quantitative Approach, Morgan Kaufmann Publishers (1990).

  2. L. M. Censier, and P. Feautrier, A new solution to coherence problems in multilevel caches,IEEE Trans. on Computers,C-27(12):1112–1118 (December 1978).

    MATH  Google Scholar 

  3. K. Gharachorloo, D. Lenoski, J. Lanudon, P. Gibbons, A. Gupta, and J. Hennessy, Memory consistency and event ordering in scalable shared-memory multiprocessors,Proc. of the 17th Ann. Int. Symp. on Computer Architecture, pp. 15–26 (May 1990).

  4. A. Agarwal, B.-H. Lim, D. Kranz, and J. Kubiatowicz, APRIL: A processor architecture for multiprocessing, inProc. of the 17th Ann. Int. Symp. on Computer Architecture, pp. 104–114 (May 1990).

  5. Myrias Corporation, System Overview, Edmonton, Alberta (1990).

  6. J. B. Carter, J. K. Bennett and W. Zwaenepoel, Implementation and performance of Munin,Proc. of the 13th ACM Symp. on Operating Systems Principles, pp. 152–164 (May 1991).

  7. A. H. Karp and V. Sarkar, Data merging for shared-memory multiprocessors,Proc. Hawaii Int. Conf. on System Sciences, pp. 244–256 (January 1993).

  8. A. Veidenbaum, A compiler-assisted cache coherence solution for multiprocessors,Int. Conf. on Parallel Processing, pp. 1029–1036 (August 1986).

  9. R. Cytron, S. Karlovsky, and K. P. McAuliffe, Automatic management of programmable caches (extended abstract),Proc. of the Int. Conf. on Parallel Processing August 1988. Also available as CSRD Rpt. No. 728 from University of Illinois, Center for Super-computing Research and Development.

  10. E. Darnell, J. M. Mellor-Crummey, and K. Kennedy, Automatic software cache coherence through vectorization,Proc. of the ACM Int. Conf. on Supercomputing, pp. 129–138 (July 1992).

  11. J. Mellor-Crummey, Compile-time support for efficient data race detection in shared-memory parallel programs,Proc. of the ACM/ONR Workshop on Parallel and Distributed Debugging pp. 129–139 (May 1993).

  12. Y. Jun and K. Koh, On-the-fly detection of access anomalies in nested parallel loops,Proc. of the ACM/ONR Workshop on Parallel and Distributed Debugging, pp. 107–117 (May 1993).

  13. Y. Fenster, Detecting Parallel Access Anomalies. Master's thesis. The Hebrew University, Computer Science Dept., Jerusalem, Israel (April 1993).

    Google Scholar 

  14. A. Dinning and E. Schonberg, Detecting access anomalies in programs with critical sections.Proc. of the ACM/ONR Workshop on Parallel and Distributed Debugging, pp. 85–95 (May 1991).

  15. P. A. Emrath and D. A. Padua, Automatic detection of nondeterminacy in parallel programs,Proc. of the ACM/ONR Workshop on Parallel and Distributed Debugging, pp. 89–99 (May 1988).

  16. S. Min and J. Choi, An efficient cache-based access anomaly detection scheme,ASPLOS-IV: 4th Int. Conf. on Architecture Support for Programming Languages and Operating System, pp. 235–244 (April 1991).

  17. R. H. B. Netzer and S. Ghosh, Efficient race condition detection for shared-memory programs with Post/Weit synchronization,Int. Conf. on Parallel Processing, pp. II:242–246 (August 1992).

  18. E. Schatz and B. G. Ryder, Directed tracing to detect race conditions,Int. Conf. on Parallel Processing, pp. II:247–250 (1992).

  19. J. F. Werth, S. I. Hyder, and J. C. Browne, A unified model for concurrent debugging,Proc. of the 1993 Conf. on Parallel Processing, pp. 1159–1172 (August 1993).

  20. D. Gajski, D. Kuch, D. Lawrie, and A. Sameh, CEDAR—A large scale multiprocessor.Int. Conf. on Parallel Processing, pp. 524–529 (August 1983).

  21. W. C. Brantley, K. P. PcAuliffe, and J. Weiss, RP3 processor-memory element,Proc. Int. Conf. on Parallel Processing, pp. 782–789 (1985).

  22. P. Stenstrom, A survey of cache coherence schemes for multiprocessors,IEEE Computer, pp. 12–24 (June 1990).

  23. W. Bolosky, R. Fitzgerald, and M. Scott, Simple but effective techniques for NUMA memory management,SOSP89, pp. 19–31 (1989).

  24. V. Sarkar and R. Thekkath, A general framework for iteration-reordering loop transformations (Technical Summary),SIGPLAN 92: Conf. on Programming Languages Design and Implementation (June 1992).

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Bernstein, D., Breternitz, M., Gheith, A.M. et al. Solutions and debugging for data consistency in multiprocessors with noncoherent caches. Int J Parallel Prog 23, 83–103 (1995). https://doi.org/10.1007/BF02577785

Download citation

  • Received:

  • Revised:

  • Issue Date:

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

Key Words

Navigation