• DocumentCode
    3459482
  • Title

    The OpenTM Transactional Application Programming Interface

  • Author

    Baek, Woongki ; Minh, Chi Cao ; Trautmann, Martin ; Kozyrakis, Christos ; Olukotun, Kunle

  • Author_Institution
    Stanford Univ., Stanford
  • fYear
    2007
  • fDate
    15-19 Sept. 2007
  • Firstpage
    376
  • Lastpage
    387
  • Abstract
    Transactional Memory (TM) simplifies parallel programming by supporting atomic and isolated execution of user-identified tasks. To date, TM programming has re quired the use of libraries that make it difficult to achieve scalable performance with code that is easy to develop and maintain. For TM programming to become practical, it is important to integrate TM into familiar, high-level environments for parallel programming. This paper presents OpenTM, an application programming interface (API) for parallel programming with transactions. OpenTM extends OpenMP, a widely used API for shared-memory parallel programming, with a set of compiler directives to express non-blocking synchronization and speculative parallelization based on memory transactions. We also present a portable OpenTM implementation that produces code for hardware, software, and hybrid TM systems. The implementation builds upon the OpenMP support in the GCC compiler and includes a runtime for the C programming language. We evaluate the performance and programmability features of OpenTM. We show that it delivers the performance of fine-grain locks at the programming simplicity of coarse- grain locks. Compared to transactional programming with lower-level interfaces, it removes the burden of manual annotations for accesses to shared variables and enables easy changes of the scheduling and contention management policies. Overall, OpenTM provides a practical and efficient TM programming environment within the familiar scope of OpenMP.
  • Keywords
    application program interfaces; parallel programming; parallelising compilers; OpenTM transactional application programming interface; compiler directives; fine-grain locks; parallel programming; shared-memory parallel programming; transactional memory; transactional programming; user-identified tasks; Application software; Computer languages; Content management; Hardware; Parallel programming; Program processors; Programming environments; Runtime; Scheduling; Software libraries;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Parallel Architecture and Compilation Techniques, 2007. PACT 2007. 16th International Conference on
  • Conference_Location
    Brasov
  • ISSN
    1089-795X
  • Print_ISBN
    978-0-7695-2944-8
  • Type

    conf

  • DOI
    10.1109/PACT.2007.4336227
  • Filename
    4336227