On the Cost of Concurrency in Transactional Memory
The crux of Software Transactional Memory (STM) is to combine an easy-to-use programming interface with an efficient utilization of the concurrent computing abilities provided by modern machines. But does this combination come with an inherent cost? The authors evaluate the cost of concurrency by measuring the amount of expensive synchronization that must be employed in an STM implementation that ensures positive concurrency, i.e., allows for concurrent transaction processing in some executions. They consider two popular progress conditions: progressiveness and permissiveness.