IBM Z and LinuxONE - Languages - Group home

IBM's Alphaworks Software Transactional Memory Compiler

  

Transactional Memory (TM) is a high level abstraction for supporting a safe mutable shared state, such that the user does not have to worry about the low-level details of locking and sharing of global resources. It is basically a class of optimistic speculation techniques such that groups of memory operations are bundled as an atomic operation such that it can resolves the problems with locks, possibly support composability.


The basic idea is to move your group of atomic operations through, assuming that it will be successful, and only rollback when a conflict actually occurs.


At the moment, much of the ideas of TM are there as a way to test out the idea, and possibly be integrated into some future hybrid system. Even practitioners of TM knows there is a certain amount of hype that we have to deal with in any new technology before it drops to a trough and rebounds back to a realistic plateau.


A number of vendors have planned both hardware and software implementations of Transactional Memory.


The software transactional memory compilers from different vendors all use different syntax, and this creates a basic problem with interoperability, and common porting of code. I will deal with this in the next post.


IBM is also working in this area, and has released an Alphaworks compiler supporting Software Transaction, actually last year.