Abstract

Sequential Consistency (SC) is the most intuitive memory model, and SC Violations (SCVs) produce unintuitive, typically incorrect executions. Most prior SCV detection schemes have used data races as proxies for SCVs, which is highly imprecise. Other schemes that have targeted data-race cycles are either too conservative or are designed only for two-processor cycles and snoopy-based systems.
This paper presents Volition, the first hardware scheme that detects SCVs in a relaxed-consistency machine precisely, in a scalable manner, and for an arbitrary number of processors in the cycle. Volition leverages cache coherence protocol transactions to dynamically detect cycles in memory-access orders across threads. When a cycle is about to occur, an exception is triggered. Volition can be used in both directory- and snoopy-based coherence protocols. Our simulations of Volition in a 64-processor multicore with directory-based coherence running SPLASH-2 and Parsec programs shows that Volition induces negligible traffic and execution overhead. In addition, it can detect SCVs with several processors. Volition is suitable for on-the-fly use.
- CheckFence at SourceForge. http://sourceforge.net/projects/checkfence/.Google Scholar
- A. Agarwal, R. Simoni, J. Hennessy, and M. Horowitz. An Evaluation of Directory Schemes for Cache Coherence. In International Symposium on Computer Architecture, May 1988. Google Scholar
Digital Library
- C. Blundell, M. M. Martin, and T. F. Wenisch. InvisiFence: Performance-Transparent Memory Ordering in Conventional Multiprocessors. In Int. Symp. on Computer Architecture, 2009. Google Scholar
Digital Library
- F. Bonomi et al. An Improved Construction for Counting Bloom Filters. In Ann. Euro. Symp. on Algo., Sep 2006. Google Scholar
Digital Library
- S. Burckhardt, R. Alur, and M. M. K. Martin. CheckFence: Checking Consistency of Concurrent Data Types on Relaxed Memory Models. In Programming Language Design and Implementation, Jun 2007. Google Scholar
Digital Library
- S. Burckhardt and M. Musuvathi. Effective Program Verification for Relaxed Memory Models. In Computer Aided Verification, Jul 2008. Google Scholar
Digital Library
- J. Burnim, K. Sen, and C. Stergiou. Sound and Complete Monitoring of Sequential Consistency for Relaxed Memory Models. In Tools and Algo. for the Const. and Ana. of Sys., July 2011. Google Scholar
Digital Library
- L. Ceze, J. M. Tuck, P. Montesinos, and J. Torrellas. BulkSC: Bulk Enforcement of Sequential Consistency. In International Symposium on Computer Architecture, June 2007. Google Scholar
Digital Library
- Y. Chen, L. Yi, W. Hu, T. Chen, H. Shen, P. Wang, and H. Pan. Fast Complete Memory Consistency Verification. In International Symposium on High Performance Computer Architecture, Feb 2009.Google Scholar
- A. Deorio, I.Wagner, and V. Bertacco. DACOTA: Post-silicon Validation of the Memory Subsystem in Multi-core Designs. In International Symposium on High Performance Computer Architecture, Feb 2009.Google Scholar
- Y. Duan, X. Feng, L. Wang, C. Zhang, and P.-C. Yew. Detecting and Eliminating Potential Violations of Sequential Consistency for Concurrent C/C++ Programs. In Code Gen. and Opt., Mar 2009. Google Scholar
Digital Library
- J. Erickson, M. Musuvathi, S. Burckhardt, and K. Olynyk. Effective Data-race Detection for the Kernel. In Operating System Design and Implementation, Feb 2010. Google Scholar
Digital Library
- X. Fang, J. Lee, and S. P. Midkiff. Automatic Fence Insertion for Shared Memory Multiprocessing. In International Conference on SuperComputing, Jun 2003. Google Scholar
Digital Library
- K. Gharachorloo and P. B. Gibbons. Detecting Violations of Sequential Consistency. In Symp. on Par. Alg. and Arch., Jul 1991. Google Scholar
Digital Library
- C. Gniady, B. Falsafi, and T. N. Vijaykumar. Is SC + ILP = RC? In International Symposium on Computer Architecture, May 1999. Google Scholar
Digital Library
- A. Krishnamurthy and K. Yelick. Analyses and Optimizations for Shared Address Space Programs. Jour. Paral. Dist. Comp., Nov 1996. Google Scholar
Digital Library
- L. Lamport. How to Make a Multiprocessor Computer that Correctly Executes Multiprocess Programs. IEEE Tran. on Comp., July 1979. Google Scholar
Digital Library
- J. Lee and D. A. Padua. Hiding Relaxed Memory Consistency with a Compiler. IEEE Trans. Comput., Aug 2001. Google Scholar
Digital Library
- C. Lin, V. Nagarajan, and R. Gupta. Efficient Sequential Consistency using Conditional Fences. In Parallel Architecture and Compilation Techniques, Sep 2010. Google Scholar
Digital Library
- C. Lin, V. Nagarajan, R. Gupta, and B. Rajaram. Efficient Sequential Consistency via Conflict Ordering. In Architectural Support for Programming Languages and Operating Systems, Mar 2012. Google Scholar
Digital Library
- B. Lucia, L. Ceze, K. Strauss, S. Qadeer, and H.-J. Boehm. Conflict Exceptions: Simplifying Concurrent Language Semantics with Precise Hardware Exceptions for Data-races. In International Symposium on Computer Architecture, Jun 2010. Google Scholar
Digital Library
- D. Marino, A. Singh, T. Millstein, M. Musuvathi, and S. Narayanasamy. DRFx: A Simple and Efficient Memory Model for Concurrent Programming Languages. In Programming Language Design and Implementation, June 2010. Google Scholar
Digital Library
- A. Meixner and D. J. Sorin. Dynamic Verification of Sequential Consistency. In Int. Symp. on Comp. Arch., Jun 2005. Google Scholar
Digital Library
- A. Muzahid, S. Qi, and J. Torrellas. Vulcan: Hardware Support for Detecting Sequential Consistency Violations Dynamically. In International Symposium on Microarchitecture, December 2012. Google Scholar
Digital Library
- S. Narayanasamy, Z.Wang, J. Tigani, A. Edwards, and B. Calder. Automatically Classifying Benign and Harmful Data Races using Replay Analysis. In Prog. Lang. Des. and Impl., Jun 2007. Google Scholar
Digital Library
- J. Renau, B. Fraguela, J. Tuck, W. Liu, M. Prvulovic, L. Ceze, S. Sarangi, P. Sack, K. Strauss, and P. Montesinos. SESC Simulator, January 2005. http://sesc.sourceforge.net.Google Scholar
- D. C. Schmidt and T. Harrison. Double-Checked Locking: An Optimization Pattern for Efficiently Initializing and Accessing Thread-safe Objects. In Patt. Lang. of Prog. Des. Conf., 1996.Google Scholar
- D. Shasha and M. Snir. Efficient and Correct Execution of Parallel Programs that Share Memory. ACM Transactions on Programming Languages and Systems, 10(2):282--312, April 1988. Google Scholar
Digital Library
- Z. Sura, X. Fang, C.-L. Wong, S. P. Midkiff, J. Lee, and D. Padua. Compiler Techniques for High Performance Sequentially Consistent Java programs. In Prin. and Pract. of Para. Prog., Jun 2005. Google Scholar
Digital Library
- J. Sevc1k. Safe Optimisations for Shared-memory Concurrent Programs. In Prog. Lang. Des. and Impl., Jun 2011. Google Scholar
Digital Library
- T. F.Wenisch, A. Ailamaki, B. Falsafi, and A. Moshovos. Mechanisms for Store-wait-free Multiprocessors. In International Symposium on Computer Architecture, June 2007. Google Scholar
Digital Library
Index Terms
Volition: scalable and precise sequential consistency violation detection
Recommendations
Volition: scalable and precise sequential consistency violation detection
ASPLOS '13: Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systemsSequential Consistency (SC) is the most intuitive memory model, and SC Violations (SCVs) produce unintuitive, typically incorrect executions. Most prior SCV detection schemes have used data races as proxies for SCVs, which is highly imprecise. Other ...
Volition: scalable and precise sequential consistency violation detection
ASPLOS '13Sequential Consistency (SC) is the most intuitive memory model, and SC Violations (SCVs) produce unintuitive, typically incorrect executions. Most prior SCV detection schemes have used data races as proxies for SCVs, which is highly imprecise. Other ...
WeeFence: toward making fences free in TSO
ICSA '13Although fences are designed for low-overhead concurrency coordination, they can be expensive in current machines. If fences were largely free, faster fine-grained concurrent algorithms could be devised, and compilers could guarantee Sequential ...







Comments