The OpenTM Transactional API
Overview
OpenTM [1] is a high-level application programming interface (API) that extends OpenMP with memory transactions. The OpenTM environment is derived from GCC and GNU OpenMP (GOMP) [2]. It supports hardware [3], software [4], and hybrid [5] TM systems and can be extended to support other TM systems. The current release includes the following features:
- Language extensions to specify transactions and transactional functions
- A modified GCC compiler that implements transactional code generation
- A software transactional memory (STM) system, TL2-x86, a port of Sun's TL2 to x86 architectures
- Five STAMP applications written in the OpenTM API
- A fully open-sourced environment including compiler, runtime, STM, and TM applications
Download
- OpenTM compiler and runtime:
Version 0.1.0
(62 MB, 3 Jun 2008)
- An experimental implementation
- As an initial release, the current version implements basic functionality (i.e., no significant optimizations on STM code)
- Can be extended to support other TM systems
-
OpenTM user manual: [PDF]
- Provides information on installing OpenTM, compiling OpenTM applications, retargeting OpenTM to other TM systems
- STAMP and TL2-x86: Current version
Platforms
- OpenTM compiler and runtime have been tested with STAMP and TL2-x86 on CentOS 5 on Intel Pentium 4 and AMD Opteron processors
Authors
- OpenTM compiler and runtime: Woongki Baek
- OpenTM compiler and runtime are derived from GCC 4.3.0 and GOMP [2].
- STAMP and TL2-x86: Chi Cao Minh
Contact Information
- Contact Woongki Baek.
License and Copyright
- The OpenTM environment is distributed with the GNU General Public License (GPL) and is provided as is without any guarantees of any kind.
- The copyright of the OpenTM environment is held by the Free Software Foundation, Inc.
References
- The OpenTM Transactional Application Programming Interface
Woongki Baek, Chi Cao Minh, Martin Trautmann, Christos Kozyrakis, Kunle Olukotun
International Conference on Parallel Architectures and Compilation Techniques (PACT), September 2007.
[Paper PDF] [Talk PPT] [Talk PDF] [BibTex] - OpenMP and Automatic Parallelization in GCC
Diego Novillo
The GCC Developers' Summit, June 2006.
- Transactional Memory Coherence and Consistency
Lance Hammond, Vicky Wong, Mike Chen, Ben Hertzberg, Brian D. Carlstrom, John D. Davis, Manohar K. Prabhu, Honggo Wijaya, Christos Kozyrakis, Kunle Olukotun
The 31st International Symposium on Computer Architecture (ISCA), June 2004.
- Transactional Locking II
Dave Dice, Ori Shalev, Nir Shavit
The 20th International Symposium on Distributed Computing (DISC), September 2006.
- An Effective Hybrid Transactional Memory System with Strong Isolation Guarantees
Chi Cao Minh, Martin Trautmann, JaeWoong Chung, Austen McDonald, Nathan Bronson, Jared Casper, Christos Kozyrakis, Kunle Olukotun
The 34th International Symposium on Computer Architecture (ISCA), June 2007.