skip to main content
research-article
Free Access

Boosting timestamp-based transactional memory by exploiting hardware cycle counters

Published:01 December 2013Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle Scholar
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. Dice, D., Shalev, O., and Shavit, N. 2006. Transactional locking II. In Proceedings of the 20th International Symposium on Distributed Computing. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. Fraser, K. 2003. Practical Lock-Freedom. Ph.D. thesis. King’s College, University of Cambridge.Google ScholarGoogle Scholar
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. Harris, T., Larus, J., and Rajwar, R. 2010. Transactional Memory (2nd ed.). Synthesis Lectures on Computer Architecture. Morgan & Claypool. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. Intel Corp. 2012. Intel 64 and IA-32 Architectures Software Developer’s Manual 325462-044US Ed. Intel Corp.Google ScholarGoogle Scholar
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle Scholar
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle Scholar
  20. 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 ScholarGoogle Scholar
  21. Shavit, N. and Touitou, D. 1995. Software transactional memory. In Proceedings of the 14th ACM Symposium on Principles of Distributed Computing. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. Spear, M. 2010. Lightweight, robust adaptivity for software transactional memory. In Proceedings of the 22nd ACM Symposium on Parallelism in Algorithms and Architectures. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Boosting timestamp-based transactional memory by exploiting hardware cycle counters
    Index terms have been assigned to the content through auto-classification.

    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

    Full Access

    • Published in

      cover image ACM Transactions on Architecture and Code Optimization
      ACM Transactions on Architecture and Code Optimization  Volume 10, Issue 4
      December 2013
      1046 pages
      ISSN:1544-3566
      EISSN:1544-3973
      DOI:10.1145/2541228
      Issue’s Table of Contents

      Copyright © 2013 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: 1 December 2013
      • Accepted: 1 November 2013
      • Revised: 1 October 2013
      • Received: 1 June 2013
      Published in taco Volume 10, Issue 4

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader