Transactional memory (TM) has been proposed as a new concurrent programming paradigm well-suited for multi-core architecture and simple to reason with. In a TM, processes of an application can communicate using lightweight, in-memory transactions. Basically, a process that wants to access a shared data structure executes some operations on this structure inside a transaction. When the transaction commits, all these operations appear as if they took place instantaneously, at some single, unique point in time. When the transaction aborts, however, all the operations are roll-backed and their effects are never visible to other transactions.
The TM paradigm is often argued to be as easy to use as coarse-grained locking, and nearly as efficient on multi-core systems as hand-crafted, fine-grained locking. We aim at evaluating transactional memory (TM) implementations, both on theoretical and experimental ground.