Abstract
Drawing inspiration from several previous projects, we present an ownership-record-free software transactional memory (STM) system that combines extremely low overhead with unusually clean semantics. While unlikely to scale to hundreds of active threads, this "NOrec" system offers many appealing features: very low fast-path latency--as low as any system we know of that admits concurrent updates; publication and privatization safety; livelock freedom; a small, constant amount of global metadata, and full compatibility with existing data structure layouts; no false conflicts due to hash collisions; compatibility with both managed and unmanaged languages, and both static and dynamic compilation; and easy acccommodation of closed nesting, inevitable (irrevocable) transactions, and starvation avoidance mechanisms. To the best of our knowledge, no extant STM system combines this set of features.
While transactional memory for processors with hundreds of cores is likely to require hardware support, software implementations will be required for backward compatibility with current and near-future processors with 2--64 cores, as well as for fall-back in future machines when hardware resources are exhausted. Our experience suggests that NOrec may be an ideal candidate for such a software system. We also observe that it has considerable appeal for use within the operating system, and in systems that require both closed nesting and publication safety.
- M. Abadi, A. Birrell, T. Harris, and M. Isard. Semantics of Transactional Memory and Automatic Mutual Exclusion. ACM Symp. on Principles of Programming Languages, Jan. 2008. Google Scholar
Digital Library
- C. Blundell, E.C. Lewis, and M.M.K. Martin. Subtleties of Transactional Memory Atomicity Semantics. IEEE Computer Architecture Letters, 5(2), Nov. 2006. Google Scholar
Digital Library
- H.-J. Boehm and S.V. Adve. Foundations of the C Concurrency Memory Model. ACM Conf. on Programming Language Design and Implementation, June 2008. Google Scholar
Digital Library
- S. Chaudhry, R. Cypher, M. Ekman, M. Karlsson, A. Landin, and S. Yip. Rock: A High-Performance Sparc CMT Processor. IEEE Micro, 29(2):6--16, Mar.-Apr. 2009. Google Scholar
Digital Library
- L. Dalessandro and M.L. Scott. Strong Isolation is a Weak Idea. SIGPLAN Workshop on Transactional Computing,Feb. 2009.Google Scholar
- P. Damron, A. Fedorova, Y. Lev, V. Luchangco, M. Moir, and D. Nussbaum. Hybrid Transactional Memory. Intl. Conf. on Architectural Support for Programming Languages and Operating Systems, Oct. 2006. Google Scholar
Digital Library
- D. Dice, O. Shalev, and N. Shavit. Transactional Locking II. Intl. Symp. on Distributed Computing, Sept. 2006. Google Scholar
Digital Library
- D. Dice and N. Shavit. Methods and Apparatus to Implement Parallel Transactions. Sun Microsystems, Aug. 2007. U.S. patent application #20,070,198,978.Google Scholar
- D. Dice, Y. Lev, M. Moir, and D. Nussbaum. Early Experience with a Commercial Hardware Transactional Memory Implementation. Intl. Conf. on Architectural Support for Programming Languages and Operating Systems, Mar. 2009. Google Scholar
Digital Library
- C. Ding, X. Shen, K. Kelsey, C. Tice, R. Huang, and C. Zhang. Software Behavior Oriented Parallelization. ACM Conf. on Programming Language Design and Implementation, June 2007. Google Scholar
Digital Library
- P. Felber, T. Riegel, and C. Fetzer. Dynamic Performance Tuning of Word-Based Software Transactional Memory. ACM Symp. on Principles and Practice of Parallel Programming, Feb. 2008. Google Scholar
Digital Library
- K. Fraser. Practical Lock-Freedom. Ph.,D. dissertation, UCAM-CL-TR-579, Computer Laboratory, Univ. of Cambridge, Feb. 2004.Google Scholar
- D. Grossman, J. Manson, and W. Pugh. What Do High-Level Memory Models Mean for Transactions? SIGPLAN Workshop on Memory Systems Performance and Correctness, Oct. 2006. Held in conjunction with ASPLOS XII. Google Scholar
Digital Library
- R. Guerraoui and M. Kapałka. On the Correctness of Transactional Memory. ACM Symp. on Principles and Practice of Parallel Programming, Feb. 2008. Google Scholar
Digital Library
- T. Harris and K. Fraser. Revocable Locks for Non-Blocking Programming. ACM Symp. on Principles and Practice of Parallel Programming, June 2005. Google Scholar
Digital Library
- R.L. Hudson, B. Saha, A.-R. Adl-Tabatabai, and B. Hertzberg. McRT-Malloc--A Scalable Transactional Memory Allocator. Intl. Symp. on Memory Management, June 2006. Google Scholar
Digital Library
- C. Lameter. Effective Synchronization on Linux/NUMA Systems. Gelato Federation Meeting, May 2005.Google Scholar
- J.R. Larus and R. Rajwar. Transactional Memory, Synthesis Lectures on Computer Architecture. Morgan & Claypool, 2007. Google Scholar
Digital Library
- Y. Lev, M. Moir, and D. Nussbaum. PhTM: Phased Transactional Memory. SIGPLAN Workshop on Transactional Computing, Aug. 2007.Google Scholar
- Y. Lev, V. Luchangco, V. Marathe, M. Moir, D. Nussbaum, and M. Olszewski. Anatomy of a Scalable Software Transactional Memory. SIGPLAN Workshop on Transactional Computing, Feb. 2009.Google Scholar
- J. Manson, W. Pugh, and S. Adve. The Java Memory Model. ACM Symp. on Principles of Programming Languages, Jan. 2005. Google Scholar
Digital Library
- V.J. Marathe, M.F. Spear, C. Heriot, A. Acharya, D. Eisenstat, W.N. Scherer III, and M.L. Scott. Lowering the Overhead of Software Transactional Memory. TR 893, Dept. of Computer Science, Univ. of Rochester, Mar. 2006.Google Scholar
- V.J. Marathe, M.F. Spear, and M.L. Scott. Scalable Techniques for Transparent Privatization in Software Transactional Memory. Intl. Conf. on Parallel Processing, Sept. 2008. Google Scholar
Digital Library
- P.E. McKenney. Exploiting Deferred Destruction: An Analysis of Read-Copy-Update Techniques in Operating System Kernels. Ph.D. dissertation, Dept. of Computer Science and Engineering, Oregon Graduate Inst., July 2004. Google Scholar
Digital Library
- V. Menon, S. Balensiefer, T. Shpeisman, A.-R. Adl-Tabatabai, R.L. Hudson, B. Saha, and A. Welc. Practical Weak-Atomicity Semantics for Java STM. ACM Symp. on Parallelism in Algorithms and Architectures, June 2008. Google Scholar
Digital Library
- C.C. Minh, J. Chung, C. Kozyrakis, and K. Olukotun. STAMP: Stanford Transactional Applications for Multi-Processing. IEEE Intl. Symp. on Workload Characterization, Sept. 2008.Google Scholar
- M. Moir and J.A. Garay. Fast, Long-Lived Renaming Improved and Simplified. ACM Symp. on Principles of Distributed Computing, May 1996. Brief announcement. Google Scholar
Digital Library
- J.E.B. Moss and A.L. Hosking. Nested Transactional Memory: Model and Architecture Sketches. Science of Computer Programming, 63(2):186--201, Dec. 2006. Google Scholar
Digital Library
- M. Olszewski, J. Cutler, and J.G. Steffan. JudoSTM: A Dynamic Binary-Rewriting Approach to Software Transactional Memory. Intl. Conf. on Parallel Architectures and Compilation Techniques, Sept. 2007. Google Scholar
Digital Library
- T. Riegel, C. Fetzer, and P. Felber. Time-based Transactional Memory with Scalable Time Bases. ACM Symp. on Parallelism in Algorithms and Architectures, June 2007. Google Scholar
Digital Library
- Rochester Software Transactional Memory Runtime. Project web site. www.cs.rochester.edu/research/synchronization/rstm/.Google Scholar
- M.F. Spear, V.J. Marathe, L. Dalessandro, and M.L. Scott. Privatization Techniques for Software Transactional Memory. ACM Symp. on Principles of Distributed Computing, Aug. 2007. Brief announcement. Extended version available as TR 915, Dept. of Computer Science, Univ. of Rochester, Feb. 2007. Google Scholar
Digital Library
- M.F. Spear, L. Dalessandro, V.J. Marathe, and M.L. Scott. Ordering-Based Semantics for Software Transactional Memory. Intl. Conf. on Principles of Distributed Systems, Dec. 2008. Google Scholar
Digital Library
- M.F. Spear, M.M. Michael, and C. von Praun. RingSTM: Scalable Transactions with a Single Atomic Instruction. ACM Symp. on Parallelism in Algorithms and Architectures, June 2008. Google Scholar
Digital Library
- M.F. Spear, L. Dalessandro, V.J. Marathe, and M.L. Scott. A Comprehensive Contention Management Strategy for Software Transactional Memory. ACM Symp. on Principles and Practice of Parallel Programming, Feb. 2009. Google Scholar
Digital Library
- M.F. Spear, A. Shriraman, L. Dalessandro, and M.L. Scott. Transactional Mutex Locks. SIGPLAN Workshop on Transactional Computing, Feb. 2009.Google Scholar
- C. Wang, W.-Y. Chen, Y. Wu, B. Saha, and A.-R. Adl-Tabatabai. Code Generation and Optimization for Transactional Memory Constructs in an Unmanaged Language. Intl. Symp. on Code Generation and Optimization, Mar. 2007. Google Scholar
Digital Library
Index Terms
NOrec: streamlining STM by abolishing ownership records
Recommendations
Reduced Hardware NOrec: A Safe and Scalable Hybrid Transactional Memory
ASPLOS '15Because of hardware TM limitations, software fallbacks are the only way to make TM algorithms guarantee progress. Nevertheless, all known software fallbacks to date, from simple locks to sophisticated versions of the NOrec Hybrid TM algorithm, have ...
NOrec: streamlining STM by abolishing ownership records
PPoPP '10: Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel ProgrammingDrawing inspiration from several previous projects, we present an ownership-record-free software transactional memory (STM) system that combines extremely low overhead with unusually clean semantics. While unlikely to scale to hundreds of active threads,...
Hybrid STM/HTM for nested transactions on OpenJDK
OOPSLA '16Transactional memory (TM) has long been advocated as a promising pathway to more automated concurrency control for scaling concurrent programs running on parallel hardware. Software TM (STM) has the benefit of being able to run general transactional ...







Comments