The Community for Technology Leaders
RSS Icon
Issue No.12 - Dec. (2013 vol.62)
pp: 2531-2543
Hagit Attiya , The Technion, Haifa
Eshcar Hillel , The Technion, Haifa and Yahoo!, Haifa
Software transactional memory (STM) is a promising approach for programming concurrent applications; STM guarantees that a transaction, consisting of a sequence of operations on the memory, appears to execute atomically. In practice, however, it is important to be able to run transactions together with nontransactional legacy code accessing the same memory locations, by supporting privatization of shared data. Privatization should be provided without sacrificing the parallelism offered by today's multicore systems and multiprocessors. This paper proves an inherent cost for supporting privatization, which is linear in the number of privatized items. Specifically, we show that a transaction privatizing $(k)$ items must have a data set of size at least $(k)$, in an STM with invisible reads, which is oblivious to different nonconflicting executions and guarantees progress in such executions. When reads are visible, it is shown that $(r)$ memory locations must be accessed by a privatizing transaction, where $(r)$ is the minimum between $(k)$, the number of privatized items, and the number of concurrent transactions guaranteed to make progress. This captures, in a concrete and quantitative manner, the tradeoff between the cost of privatization and the level of parallelism offered by the STM.
Privatization, Parallel processing, Costs, Software development, Multicore processing,progress properties, Transactional memory, disjoint-access parallelism, privatization safety
Hagit Attiya, Eshcar Hillel, "The Cost of Privatization in Software Transactional Memory", IEEE Transactions on Computers, vol.62, no. 12, pp. 2531-2543, Dec. 2013, doi:10.1109/TC.2012.159
[1] M. Abadi, A. Birrell, T. Harris, J. Hsieh, and M. Isard, "Implementation and Use of Transactional Memory with Dynamic Separation," Proc. 18th Int'l Conf. Compiler Construction (CC), pp. 63-77, 2009.
[2] M. Abadi, A. Birrell, T. Harris, and M. Isard, "Semantics of Transactional Memory and Automatic Mutual Exclusion," ACM Trans. Programming Language Systems, vol. 33, pp. 2:1-2:50, Jan. 2011.
[3] M. Abadi, T. Harris, and M. Mehrara, "Transactional Memory with Strong Atomicity Using Off-the-Shelf Memory Protection Hardware," Proc. 14th ACM SIGPLAN Symp. Principles and Practice of Parallel Programming (PPoPP), pp. 185-196, 2009.
[4] H. Attiya, E. Hillel, and A. Milani, "Inherent Limitations on Disjoint-Access Parallel Implementations of Transactional Memory," Theory of Computer Systems, vol. 49, no. 4, pp. 698-719, Nov. 2011.
[5] H. Avni and N. Shavit, "Maintaining Consistent Transactional States without a Global Clock," Proc. 15th Int'l Colloquium Structural Information and Comm. Complexity (SIROCCO), pp. 131-140, 2008.
[6] B.H. Bloom, "Space/Time Trade-Offs in Hash Coding with Allowable Errors," Comm. ACM, vol. 13, no. 7, pp. 422-426, 1970.
[7] C. Cascaval, C. Blundell, M. Michael, H.W. Cain, P. Wu, S. Chiras, and S. Chatterjee, "Software Transactional Memory: Why Is It Only a Research Toy?" Comm. ACM, vol. 51, no. 11 pp. 40-46, 2008.
[8] L. Dalessandro, M.F. Spear, and M.L. Scott, "NOrec: Streamlining STM by Abolishing Ownership Records," ACM SIGPLAN Notices, vol. 45, no. 5, pp. 67-78, 2010.
[9] D. Dice, A. Matveev, and N. Shavit, "Implicit Privatization Using Private Transactions," Proc. Fifth ACM SIGPLAN Workshop Transactional Computing (TRANSACT), 2010.
[10] D. Dice, O. Shalev, and N. Shavit, "Transactional Locking II," Proc. 20th Int'l Symp. Distributed Computing (DISC), pp. 194-208, 2006.
[11] D. Dice and N. Shavit, "TLRW: Return of the Read-Write Lock," Proc. 22nd ACM Symp. Parallelism in Algorithms and Architectures (SPAA), pp. 284-293, 2010.
[12] A. Dragojevic, P. Felber, V. Gramoli, and R. Guerraoui, "Why STM Can be More than a Research Toy," Comm. ACM, vol. 54, no. 4, pp. 70-77, 2011.
[13] J. Duffy, "A (Brief) Retrospective on Transactional Memory," http://www.bluebytesoftware.comblog/, Jan. 2010.
[14] J.E. Gottschlich, M. Vachharajani, and J.G. Siek, "An Efficient Software Transactional Memory Using Commit-Time Invalidation," Proc. Eighth Ann. IEEE/ACM Int'l Symp. Code Generation and Optimization (CGO), pp. 101-110, 2010.
[15] R. Guerraoui, T.A. Henzinger, M. Kapalka, and V. Singh, "Transactions in the Jungle," Proc. 22nd ACM Symp. Parallelism in Algorithms and Architectures (SPAA), pp. 263-272, 2010.
[16] R. Guerraoui and M. Kapałka, "On the Correctness of Transactional Memory," Proc. 13th ACM SIGPLAN Symp. Principles and Practice of Parallel Programming (PPoPP), pp. 175-184, 2008.
[17] R. Guerraoui and M. Kapałka, "The Semantics of Progress in Lock-Based Transactional Memory," Proc. 36th Ann. ACM SIGPLAN-SIGACT Symp. Principles of Programming Languages (POPL), pp. 404-415, 2009.
[18] M. Herlihy, V. Luchangco, and M. Moir, "Obstruction-Free Synchronization: Double-Ended Queues as an Example," Proc. 23rd Int'l Conf. Distributed Computing Systems (ICDCS), pp. 522-529, 2003.
[19] M. Herlihy and N. Shavit, The Art of Multiprocessor Programming. Morgan Kaufmann, 2008.
[20] E. Hillel, "Concurrent Data Structures: Methodologies and Inherent Limitations," PhD thesis, Technion, 2011.
[21] A. Israeli and L. Rappoport, "Disjoint-Access-Parallel Implementations of Strong Shared Memory Primitives," Proc. 13th Ann. ACM Symp. Principles of Distributed Computing (PODC), pp. 151-160, 1994.
[22] J.R. Larus and R. Rajwar, Transactional Memory. Morgan & Claypool, 2006.
[23] Y. Lev, V. Luchangco, V.J. Marathe, M. Moir, D. Nussbaum, and M. Olszewski, "Anatomy of a Scalable Software Transactional Memory," Proc. Fourth ACM SIGPLAN Workshop Transactional Computing (TRANSACT), 2009.
[24] V.J. Marathe, M.F. Spear, and M.L. Scott, "Scalable Techniques for Transparent Privatization in Software Transactional Memory," Proc. 37th Int'l Conf. Parallel Processing (ICPP), pp. 67-74, 2008.
[25] M. Martin, C. Blundell, and E. Lewis, "Subtleties of Transactional Memory Atomicity Semantics," IEEE Computer Architecture Letters, vol. 5, no. 2, p. 17, Feb. 2006.
[26] 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," Proc. 20th ACM Symp. Parallelism in Algorithms and Architectures (SPAA), pp. 314-325, 2008.
[27] M. Olszewski, J. Cutler, and J.G. Steffan, "JudoSTM: A Dynamic Binary-Rewriting Approach to Software Transactional Memory," Proc. 16th Int'l Conf. Parallel Architecture and Compilation Techniques (PACT), pp. 365-375, 2007.
[28] T. Riegel, P. Felber, and C. Fetzer, "A Lazy Snapshot Algorithm with Eager Validation," Proc. 20th Int'l Symp. Distributed Computing (DISC), pp. 284-298, 2006.
[29] T. Riegel, C. Fetzer, and P. Felber, "Time-Based Transactional Memory with Scalable Time Bases," Proc. 19th Ann. ACM Symp. Parallelism in Algorithms and Architectures (SPAA), pp. 221-228, 2007.
[30] F.T. Schneider, V. Menon, T. Shpeisman, and A.-R. Adl-Tabatabai, "Dynamic Optimization for Efficient Strong Atomicity," ACM SIGPLAN Notices, vol. 43, no. 10, pp. 181-194, 2008.
[31] T. Shpeisman, V. Menon, A.-R. Adl-Tabatabai, S. Balensiefer, D. Grossman, R.L. Hudson, K.F. Moore, and B. Saha, "Enforcing Isolation and Ordering in STM," ACM SIGPLAN Notices, vol. 42, no. 6, pp. 78-88, 2007.
[32] M.F. Spear, L. Dalessandro, V.J. Marathe, and M.L. Scott, "Ordering-Based Semantics for Software Transactional Memory," Proc. 12th Int'l Conf. Principles of Distributed Systems (OPODIS), pp. 275-294, 2008.
[33] M.F. Spear, V.J. Marathe, L. Dalessandro, and M.L. Scott, "Privatization Techniques for Software Transactional Memory," Technical Report Tr 915, Dept. of Computer Science, Univ. of Rochester, 2007.
[34] M.F. Spear, M.M. Michael, and C. von Praun, "RingSTM: Scalable Transactions with a Single Atomic Instruction," Proc. 20th Ann. Symp. Parallelism in Algorithms and Architectures (SPAA), pp. 275-284, 2008.
[35] 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," Proc. Int'l Symp. Code Generation and Optimization (CGO), pp. 34-48, 2007.
[36] G. Weikum and G. Vossen, Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery. Morgan Kaufmann, 2001.
[37] R.M. Yoo, Y. Ni, A. Welc, B. Saha, A.-R. Adl-Tabatabai, and H.-H.S. Lee, "Kicking the Tires of Software Transactional Memory: Why the Going Gets Tough," Proc. 20th ACM Symp. Parallelism in Algorithms and Architectures (SPAA), pp. 265-274, 2008.
133 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool