Abstract
Time-based transactional memories typically rely on a shared memory counter to ensure consistency. Unfortunately, such a counter can become a bottleneck. In this article, we identify properties of hardware cycle counters that allow their use in place of a shared memory counter. We then devise algorithms that exploit the x86 cycle counter to enable bottleneck-free transactional memory runtime systems. We also consider the impact of privatization safety and hardware ordering constraints on the correctness, performance, and generality of our algorithms.
- Abadi, M., Birrell, A., Harris, T., and Isard, M. 2008. Semantics of transactional Memory and Automatic Mutual Exclusion. In Proceedings of the 35th ACM Symposium on Principles of Programming Languages. Google ScholarDigital Library
- Adl-Tabatabai, A.-R., Shpeisman, T., and Gottschlich, J. 2012. Draft specification of transactional language constructs for C++. Version 1.1. http://justingottschlich.com/tm-specification-for-c-v-1-1/.Google Scholar
- Ansari, M., Kotselidis, C., Jarvis, K., Lujan, M., Kirkham, C., and Watson, I. 2008. Lee-TM: A Non-trivial Benchmark for Transactional Memory. In Proceedings of the International Conference on Algorithms and Architectures for Parallel Processing. Google ScholarDigital Library
- Dalessandro, L., Spear, M., and Scott, M. L. 2010. NOrec: Streamlining STM by Abolishing Ownership Records. In Proceedings of the 15th ACM Symposium on Principles and Practice of Parallel Programming. Bangalore, India. Google ScholarDigital Library
- Dice, D., Shalev, O., and Shavit, N. 2006. Transactional locking II. In Proceedings of the 20th International Symposium on Distributed Computing. Google ScholarDigital Library
- Dragojevic, A., Guerraoui, R., and Kapalka, M. 2009. Stretching transactional memory. In Proceedings of the 30th ACM Conference on Programming Language Design and Implementation. Dublin, Ireland. Google ScholarDigital Library
- Felber, P., Fetzer, C. and Riegel, T. 2008. Dynamic performance tuning of word-based software transactional memory. In Proceedings of the 13th ACM Symposium on Principles and Practice of Parallel Programming. Google ScholarDigital Library
- Fetzer, C. and Felber, P. 2007. Time-based transactional memory with scalable time bases. In Proceedings of the 19th ACM Symposium on Parallelism in Algorithms and Architectures. Google ScholarDigital Library
- Fraser, K. 2003. Practical Lock-Freedom. Ph.D. thesis. King’s College, University of Cambridge.Google Scholar
- Guerraoui, R. and Kapalka, M. 2008. On the correctness of transactional memory. In Proceedings of the 13th ACM Symposium on Principles and Practice of Parallel Programming. Google ScholarDigital Library
- Harris, T., Larus, J., and Rajwar, R. 2010. Transactional Memory (2nd ed.). Synthesis Lectures on Computer Architecture. Morgan & Claypool. Google ScholarDigital Library
- Herlihy, M. P., Luchangco, V., Moir, M., and Scherer III, W. N. 2003. Software transactional memory for dynamic-sized data structures. In Proceedings of the 22nd ACM Symposium on Principles of Distributed Computing. Boston, MA. Google ScholarDigital Library
- Intel Corp. 2012. Intel 64 and IA-32 Architectures Software Developer’s Manual 325462-044US Ed. Intel Corp.Google Scholar
- Marathe, V. and Moir, M. 2008. Toward high performance nonblocking software transactional memory. In Proceedings of the 13th ACM Symposium on Principles and Practice of Parallel Programming. Google ScholarDigital Library
- Marathe, V. J., Scherer III, W. N., and Scott, M. L. 2005. Adaptive software transactional memory. In Proceedings of the 19th International Symposium on Distributed Computing. Google ScholarDigital Library
- Marathe, V. J., Spear, M., Heriot, C., Acharya, A., Eisenstat, D., Scherer III, W. N., and Scott, M. L. 2006. Lowering the overhead of nonblocking software transactional memory. In Proceedings of the 1st ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing.Google Scholar
- Marathe, V. J., Spear, M., and Scott, M. L. 2008. Scalable techniques for transparent privatization in software transactional memory. In Proceedings of the 37th International Conference on Parallel Processing. Google ScholarDigital Library
- Menon, V., Balensiefer, S., Shpeisman, T., Adl-Tabatabai, A.-R., Hudson, R., Saha, B., and Welc, A. 2008. Practical weak-atomicity semantics for Java STM. In Proceedings of the 20th ACM Symposium on Parallelism in Algorithms and Architectures. Google ScholarDigital Library
- Minh, C. C., Chung, J., Kozyrakis, C., and Olukotun, K. 2008. STAMP: Stanford transactional applications for multi-processing. In Proceedings of the IEEE International Symposium on Workload Characterization.Google Scholar
- Riegel, T., Fetzer, C. and Felber, P. 2006. Snapshot isolation for software transactional memory. In Proceedings of the 1st ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing.Google Scholar
- Shavit, N. and Touitou, D. 1995. Software transactional memory. In Proceedings of the 14th ACM Symposium on Principles of Distributed Computing. Google ScholarDigital Library
- Shpeisman, T., Menon, V., Adl-Tabatabai, A.-R., Balensiefer, S., Grossman, D., Hudson, R. L., Moore, K., and Saha, B. 2007. Enforcing isolation and ordering in STM. In Proceedings of the 2007 ACM Conference on Programming Language Design and Implementation. Google ScholarDigital Library
- Spear, M. 2010. Lightweight, robust adaptivity for software transactional memory. In Proceedings of the 22nd ACM Symposium on Parallelism in Algorithms and Architectures. Google ScholarDigital Library
- Spear, M., Dalessandro, L., Marathe, V. J., and Scott, M. L. 2008. Ordering-based semantics for aoftware transactional memory. In Proceedings of the 12th International Conference on Principles of Distributed Systems. Google ScholarDigital Library
- Spear, M., Dalessandro, L., Marathe, V. J., and Scott, M. L. 2009. A comprehensive strategy for contention management in software transactional memory. In Proceedings of the 14th ACM Symposium on Principles and Practice of Parallel Programming. Google ScholarDigital Library
- Spear, M., Marathe, V., Dalessandro, L., and Scott, M. 2007. Privatization techniques for software transactional memory (POSTER). In Proceedings of the 26th ACM Symposium on Principles of Distributed Computing. Google ScholarDigital Library
- Wang, C., Chen, W.-Y., Wu, Y., Saha, B., and Adl-Tabatabai, A.-R. 2007. Code generation and optimization for transactional memory constructs in an unmanaged language. In Proceedings of the 2007 International Symposium on Code Generation and Optimization. Google ScholarDigital Library
- Zhang, R., Budimlic, Z., and Scherer III, W. N. 2008. Commit phase in timestamp-based STM. In Proceedings of the 20th ACM Symposium on Parallelism in Algorithms and Architectures. Google ScholarDigital Library
Index Terms
- Boosting timestamp-based transactional memory by exploiting hardware cycle counters
Recommendations
Safe privatization in transactional memory
PPoPP '18: Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel ProgrammingTransactional memory (TM) facilitates the development of concurrent applications by letting the programmer designate certain code blocks as atomic. Programmers using a TM often would like to access the same data both inside and outside transactions, ...
Safe privatization in transactional memory
PPoPP '18Transactional memory (TM) facilitates the development of concurrent applications by letting the programmer designate certain code blocks as atomic. Programmers using a TM often would like to access the same data both inside and outside transactions, ...
Unbounded page-based transactional memory
Proceedings of the 2006 ASPLOS ConferenceExploiting thread level parallelism is paramount in the multicore era. Transactions enable programmers to expose such parallelism by greatly simplifying the multi-threaded programming model. Virtualized transactions (unbounded in space and time) are ...
Comments