Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Open access

Boosting timestamp-based transactional memory by exploiting hardware cycle counters

Published: 01 December 2013 Publication History

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

Cited By

View all
  • (2024)Jiffy: A Lock-free Skip List with Batch Updates and Snapshots (Abstract)Proceedings of the 2024 ACM Workshop on Highlights of Parallel Computing10.1145/3670684.3673410(5-7)Online publication date: 17-Jun-2024
  • (2024)VERLIB: Concurrent Versioned PointersProceedings of the 29th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming10.1145/3627535.3638501(200-214)Online publication date: 2-Mar-2024
  • (2024)Accelerating block lifecycle on blockchain via hardware transactional memoryJournal of Parallel and Distributed Computing10.1016/j.jpdc.2023.104779184(104779)Online publication date: Feb-2024
  • Show More Cited By
  1. Boosting timestamp-based transactional memory by exploiting hardware cycle counters

    Recommendations

    Comments

    Information & Contributors

    Information

    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
    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: 01 December 2013
    Accepted: 01 November 2013
    Revised: 01 October 2013
    Received: 01 June 2013
    Published in TACO Volume 10, Issue 4

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Transactional memory
    2. counters
    3. privatization
    4. rdtscp

    Qualifiers

    • Research-article
    • Research
    • Refereed

    Funding Sources

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)104
    • Downloads (Last 6 weeks)27
    Reflects downloads up to 13 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Jiffy: A Lock-free Skip List with Batch Updates and Snapshots (Abstract)Proceedings of the 2024 ACM Workshop on Highlights of Parallel Computing10.1145/3670684.3673410(5-7)Online publication date: 17-Jun-2024
    • (2024)VERLIB: Concurrent Versioned PointersProceedings of the 29th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming10.1145/3627535.3638501(200-214)Online publication date: 2-Mar-2024
    • (2024)Accelerating block lifecycle on blockchain via hardware transactional memoryJournal of Parallel and Distributed Computing10.1016/j.jpdc.2023.104779184(104779)Online publication date: Feb-2024
    • (2023)Separating Mechanism from Policy in STM2023 32nd International Conference on Parallel Architectures and Compilation Techniques (PACT)10.1109/PACT58117.2023.00031(279-296)Online publication date: 21-Oct-2023
    • (2023)Opportunities and Limitations of Hardware Timestamps in Concurrent Data Structures2023 IEEE International Parallel and Distributed Processing Symposium (IPDPS)10.1109/IPDPS54959.2023.00068(624-634)Online publication date: May-2023
    • (2022)JiffyProceedings of the 27th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/3503221.3508437(400-415)Online publication date: 2-Apr-2022
    • (2018)Hardware transactional persistent memoryProceedings of the International Symposium on Memory Systems10.1145/3240302.3240305(190-205)Online publication date: 1-Oct-2018
    • (2018)NemoProceedings of the 47th International Conference on Parallel Processing10.1145/3225058.3225123(1-10)Online publication date: 13-Aug-2018
    • (2018)A scalable ordering primitive for multicore machinesProceedings of the Thirteenth EuroSys Conference10.1145/3190508.3190510(1-15)Online publication date: 23-Apr-2018
    • (2017)What Scalable Programs Need from Transactional MemoryACM SIGARCH Computer Architecture News10.1145/3093337.303775045:1(105-118)Online publication date: 4-Apr-2017
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Full Access

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media