• DocumentCode
    2171829
  • Title

    Understanding transactional memory performance

  • Author

    Porter, Donald E. ; Witchel, Emmett

  • Author_Institution
    Univ. of Texas at Austin, Austin, TX, USA
  • fYear
    2010
  • fDate
    28-30 March 2010
  • Firstpage
    97
  • Lastpage
    108
  • Abstract
    Transactional memory promises to generalize transactional programming to mainstream languages and data structures. The purported benefit of transactions is that they are easier to program correctly than fine-grained locking and perform just as well. This performance claim is not always borne out because an application may violate a common-case assumption of the TM designer or because of external system effects. This paper carefully studies a range of factors that can adversely influence transactional memory performance. In order to help programmers assess the suitability of their code for transactional memory, this paper introduces a formal model of transactional memory as well as a tool, called Syncchar. Syncchar can predict the speedup of a conversion from locks to transactions within 25 % for the STAMP benchmarks. We also use the Syncchar tool to diagnose and eliminate a starvation pathology in the TxLinux kernel, improving the performance of the Modified Andrew Benchmark by 55% over Linux. The paper also presents the first detailed study of how the performance of user-level transactional programs (from the STAMP benchmarks) are influenced by factors outside of the transactional memory system. The study includes data about the interaction of transactional programs with the architecture, memory allocator, and compiler. Because many factors influence the performance of transactional programs, getting good performance from transactions is more difficult than commonly appreciated.
  • Keywords
    Linux; data structures; operating system kernels; transaction processing; Syncchar; TxLinux kernel; compiler; data structures; memory allocator; modified Andrew benchmark; transactional memory system; transactional programming; user-level transactional programs; Data structures; Kernel; Linux; Memory architecture; Pathology; Performance analysis; Predictive models; Program processors; Programming profession; Yarn;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Performance Analysis of Systems & Software (ISPASS), 2010 IEEE International Symposium on
  • Conference_Location
    White Plains, NY
  • Print_ISBN
    978-1-4244-6023-6
  • Electronic_ISBN
    978-1-4244-6024-3
  • Type

    conf

  • DOI
    10.1109/ISPASS.2010.5452061
  • Filename
    5452061