skip to main content
10.1145/1993806.1993819acmconferencesArticle/Chapter ViewAbstractPublication PagespodcConference Proceedingsconference-collections
research-article

The impact of memory models on software reliability in multiprocessors

Published:06 June 2011Publication History

ABSTRACT

The memory consistency model is a fundamental system property characterizing a multiprocessor. The relative merits of strict versus relaxed memory models have been widely debated in terms of their impact on performance, hardware complexity and programmability. This paper adds a new dimension to this discussion: the impact of memory models on software reliability. By allowing some instructions to reorder, weak memory models may expand the window between critical memory operations. This can increase the chance of an undesirable thread-interleaving, thus allowing an otherwise-unlikely concurrency bug to manifest. To explore this phenomenon, we define and study a probabilistic model of shared-memory parallel programs that takes into account such reordering. We use this model to formally derive bounds on the vulnerability to concurrency bugs of different memory models. Our results show that for 2 concurrent threads, weaker memory models do indeed have a higher likelihood of allowing bugs. On the other hand, we show that as the number of parallel, buggy threads increases, the gap between the different memory models becomes proportionally insignificant, and thus the importance of using a strict memory model diminishes.

References

  1. S. V. Adve and K. Gharachorloo. Shared memory consistency models: A tutorial. IEEE Computer, 29(12):66--76, December 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. S. V. Adve and M. D. Hill. Weak ordering--a new definition. In ACM IEEE International Symposium on Computer Architecture, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. AMD Corp. AMD64 Architecture Programmer's Manual - Volume 2: System Programming, July 2007.Google ScholarGoogle Scholar
  4. C. Artho, K. Havelund, and A. Biere. High-level data races. Journal on Software Testing, Verification & Reliability, 13(4):220--227, 2003.Google ScholarGoogle ScholarCross RefCross Ref
  5. Arvind and J.-W. Maessen. Memory model = instruction reordering + store atomicity. In ACM IEEE International Symposium on Computer Architecture, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. H.-J. Boehm and S. V. Adve. Foundations of the C++ concurrency memory model. In ACM SIGPLAN conference on Programming Language Design and Implementation, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. L. Ceze, J. Tuck, P. Montesinos, and J. Torrellas. BulkSC: Bulk enforcement of sequential consistency. In ACM IEEE International Symposium on Computer Architecture, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. M. Dubois, C. Scheurich, and F. A. Briggs. Memory access buffering in multiprocessors. In ACM IEEE International Symposium on Computer Architecture, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. C. Flanagan and S. Qadeer. A type and effect system for atomicity. In ACM SIGPLAN Conference on Programming Language Design and Implementation, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. K. Gharachorloo, A. Gupta, and J. Hennessy. Two techniques to enhance the performance of memory consistency models. In International Conference on Parallel Processing, 1991.Google ScholarGoogle Scholar
  11. K. Gharachorloo, D. Lenoski, J. Laudon, P. Gibbons, A. Gupta, and J. Hennessy. Memory consistency and event ordering in scalable shared-memory multiprocessors. In ACM IEEE International Symposium on Computer Architecture, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. C. Gniady, B. Falsafi, and T. N. Vijaykumar. Is SC + ILP = RC? In ACM IEEE International Symposium on Computer Architecture, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. J. R. Goodman. Cache consistency and sequential consistency. Technical Report 1006, University of Wisconsin-Madison, 1989.Google ScholarGoogle Scholar
  14. Intel Corp. Intel 64 and IA-32 Architectures Software Developer's Manual--Volume 3A: System Programming Guide, Part 1, December 2009.Google ScholarGoogle Scholar
  15. L. Lamport. How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Transactions on Computers, 28(9):690--691, September 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. J. Lee and D. Padua. Hiding relaxed memory consistency with compilers. In International Conference on Parallel Architectures and Compilation Techniques, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. S. Lu, S. Park, E. Seo, and Y. Zhou. Learning from mistakes--a comprehensive study on real world concurrency bug characteristics. In 13th International Conference on Architectural Support for Programming Languages and Operating Systems, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. J. Manson, W. Pugh, and S. V. Adve. The Java memory model. In ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. SPARC International, Inc. The SPARC Architecture Manual--Version 8, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. The impact of memory models on software reliability in multiprocessors

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Conferences
            PODC '11: Proceedings of the 30th annual ACM SIGACT-SIGOPS symposium on Principles of distributed computing
            June 2011
            406 pages
            ISBN:9781450307192
            DOI:10.1145/1993806

            Copyright © 2011 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 6 June 2011

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

            Acceptance Rates

            Overall Acceptance Rate740of2,477submissions,30%

            Upcoming Conference

            PODC '24
          • Article Metrics

            • Downloads (Last 12 months)1
            • Downloads (Last 6 weeks)0

            Other Metrics

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader