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

Pot: Deterministic Transactional Execution

Published: 16 December 2016 Publication History
  • Get Citation Alerts
  • Abstract

    This article presents Pot, a system that leverages the concept of preordered transactions to achieve deterministic multithreaded execution of programs that use Transactional Memory. Preordered transactions eliminate the root cause of nondeterminism in transactional execution: they provide the illusion of executing in a deterministic serial order, unlike traditional transactions that appear to execute in a nondeterministic order that can change from execution to execution. Pot uses a new concurrency control protocol that exploits the serialization order to distinguish between fast and speculative transaction execution modes in order to mitigate the overhead of imposing a deterministic order. We build two Pot prototypes: one using STM and another using off-the-shelf HTM. To the best of our knowledge, Pot enables deterministic execution of programs using off-the-shelf HTM for the first time. An experimental evaluation shows that Pot achieves deterministic execution of TM programs with low overhead, sometimes even outperforming nondeterministic executions, and clearly outperforming the state of the art.

    References

    [1]
    Tom Bergan, Owen Anderson, Joseph Devietti, Luis Ceze, and Dan Grossman. 2010. CoreDet: A compiler and runtime system for deterministic multithreaded execution. In International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’10).
    [2]
    Emery D. Berger, Ting Yang, Tongping Liu, and Gene Novark. 2009. Grace: Safe multithreaded programming for C/C++. In ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA).
    [3]
    Philip Bernstein, Vassos Hadzilacos, and Nathan Goodman. 1987. Concurrency Control and Recovery in Database Systems. Addison-Wesley, New York, NY.
    [4]
    C++ Committee SG5. 2015. Technical Specification for C++ Extensions for Transactional Memory. Retrieved December 1, 2016 from open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4514.pdf.
    [5]
    Harold Cain, Maged Michael, Brad Frey, Cathy May, Derek Williams, and Hung Le. 2013. Robust architectural support for transactional memory in the POWER architecture. In International Symposium on Computer Architecture (ISCA’13).
    [6]
    Heming Cui, Jiri Simsa, Y. Lin, Hao Li, Ben Blum, Xinan Xu, Junfeng Yang, Garth Gibson, and Randal Bryant. 2013. Parrot: A practical runtime for deterministic, stable, and reliable threads. In ACM Symposium on Operating Systems Principles (SOSP’13).
    [7]
    Luke Dalessandro, Michael F. Spear, and Michael L. Scott. 2010. NOrec: Streamlining STM by abolishing ownership records. In ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP’10).
    [8]
    Joseph Devietti, Brandon Lucia, Luis Ceze, and Mark Oskin. 2009. DMP: Deterministic shared memory multiprocessing. In International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’09).
    [9]
    Dave Dice, Ori Shalev, and Nir Shavit. 2006. Transactional locking II. In International Symposium on Distributed Computing (DISC’06).
    [10]
    Free Software Foundation. 2014. Transactional memory in GCC. Retrieved December 1, 2016 from gcc.gnu.org/wiki/TransactionalMemory.
    [11]
    M. A. Gonzalez-Mesa, Eladio Gutierrez, Emilio L. Zapata, and Oscar Plata. 2014. Effective transactional memory execution management for improved concurrency. ACM Transactions on Architecture and Code Optimization 11, 3.
    [12]
    Rachid Guerraoui and Michal Kapalka. 2008. On the correctness of transactional memory. In ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP’08).
    [13]
    Rachid Guerraoui, Michal Kapalka, and Jan Vitek. 2007. STMBench7: A benchmark for software transactional memory. In ACM European Conference on Computer Systems (EuroSys’07).
    [14]
    Maurice Herlihy and J. Eliot B. Moss. 1993. Transactional memory: Architectural support for lock-free data structures. In International Symposium on Computer Architecture (ISCA’93).
    [15]
    H. Kung and John Robinson. 1981. On optimistic methods for concurrency control. ACM Transactions on Database Systems 6, 2.
    [16]
    Yossi Lev, Mark Moir, and Dan Nussbaum. 2007. PhTM: Phased transactional memory. In ACM SIGPLAN Workshop on Transactional Computing (TRANSACT’07).
    [17]
    Tongping Liu, Charlie Curtsinger, and Emery Berger. 2011. DThreads: Efficient deterministic multithreading. In ACM Symposium on Operating Systems Principles (SOSP’11).
    [18]
    Kai Lu, Xu Zhou, Tom Bergan, and Xiaoping Wang. 2014. Efficient deterministic multithreading without global barriers. In ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP’14).
    [19]
    Shan Lu, Soyeon Park, Eunsoo Seo, and Yuanyuan Zhou. 2008. Learning from mistakes: A comprehensive study on real world concurrency bug characteristics. In International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’08).
    [20]
    Chí Cao Minh, JaeWoong Chung, Christos Kozyrakis, and Kunle Olukotun. 2008. STAMP: Stanford transactional applications for multi-processing. In IEEE International Symposium on Workload Characterization (IISWC’08).
    [21]
    Marek Olszewski, Jason Ansel, and Saman Amarasinghe. 2009. Kendo: Efficient deterministic multithreading in software. In International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’09).
    [22]
    Kaushik Ravichandran, Ada Gavrilovska, and Santosh Pande. 2014. DeSTM: Harnessing determinism in STMs for application development. In International Conference on Parallel Architectures and Compilation Techniques (PACT’14).
    [23]
    Fred B. Schneider. 1990. Implementing fault-tolerant services using the state machine approach: A tutorial. ACM Computing Surveys 22, 4.
    [24]
    Nir Shavit and Dan Touitou. 1997. Software transactional memory. Distributed Computing 10, 2.
    [25]
    Vesna Smiljkovic, Srdan Stipic, Christof Fetzer, Osman Ünsal, Adrián Cristal, and Mateo Valero. 2014. DeTrans: Deterministic and parallel execution of transactions. In International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD’14).
    [26]
    M. F. Spear, M. Silverman, L. Dalessandro, M. M. Michael, and M. L. Scott. 2008. Implementing and exploiting inevitability in software transactional memory. In International Conference on Parallel Processing (ICPP’08).
    [27]
    Michael F. Spear, Kirk Kelsey, Tongxin Bai, Luke Dalessandro, Michael L. Scott, Chen Ding, and Peng Wu. 2009. Fastpath speculative parallelization. In Workshop on Languages and Compilers for Parallel Computing.
    [28]
    Alexander Thomson, Thaddeus Diamond, Shu-Chun Weng, Kun Ren, Philip Shao, and Daniel Abadi. 2012. Calvin: Fast distributed transactions for partitioned database systems. In ACM International Conference on Management of Data (SIGMOD’12).
    [29]
    Christoph von Praun, Luis Ceze, and Calin Caşcaval. 2007. Implicit parallelism with ordered transactions. In ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP’07).
    [30]
    J. Wamhoff, Christof Fetzer, Pascal Felber, Etienne Rivière, and Gilles Muller. 2013. FastLane: Improving performance of software transactional memory for low thread counts. In ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP’13).
    [31]
    Adam Welc, Bratin Saha, and A. Adl-Tabatabai. 2008. Irrevocable transactions and their applications. In ACM Symposium on Parallelism in Algorithms and Architectures (SPAA’08).
    [32]
    Richard Yoo, Christopher Hughes, Konrad Lai, and Ravi Rajwar. 2013. Performance evaluation of Intel transactional synchronization extensions for high-performance computing. In International Conference for High Performance Computing Networking, Storage, and Analysis (SC’13).

    Cited By

    View all
    • (2023)Block-STMProceedings of the 28th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming10.1145/3572848.3577524(232-244)Online publication date: 25-Feb-2023
    • (2019)Semantics-aware scheduling policies for synchronization determinismProceedings of the 24th Symposium on Principles and Practice of Parallel Programming10.1145/3293883.3295731(242-256)Online publication date: 16-Feb-2019

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Transactions on Architecture and Code Optimization
    ACM Transactions on Architecture and Code Optimization  Volume 13, Issue 4
    December 2016
    648 pages
    ISSN:1544-3566
    EISSN:1544-3973
    DOI:10.1145/3012405
    Issue’s Table of Contents
    Publication rights licensed to ACM. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only.

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 16 December 2016
    Accepted: 01 November 2016
    Revised: 01 November 2016
    Received: 01 May 2016
    Published in TACO Volume 13, Issue 4

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Software transactional memory
    2. concurrency control
    3. determinism
    4. deterministic multithreading
    5. hardware transactional memory

    Qualifiers

    • Research-article
    • Research
    • Refereed

    Funding Sources

    • Fundação para a Ciência e Tecnologia, Ministério da Ciência, Tecnologia, e Ensino Superior

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)67
    • Downloads (Last 6 weeks)17
    Reflects downloads up to 26 Jul 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Block-STMProceedings of the 28th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming10.1145/3572848.3577524(232-244)Online publication date: 25-Feb-2023
    • (2019)Semantics-aware scheduling policies for synchronization determinismProceedings of the 24th Symposium on Principles and Practice of Parallel Programming10.1145/3293883.3295731(242-256)Online publication date: 16-Feb-2019

    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