Transactional memory: architectural support for lock-free data structures
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
Transactional information systems: theory, algorithms, and the practice of concurrency control and recovery
Transactional lock-free execution of lock-based programs
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
Software transactional memory for dynamic-sized data structures
Proceedings of the twenty-second annual symposium on Principles of distributed computing
Language support for lightweight transactions
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Transactional Memory Coherence and Consistency
Proceedings of the 31st annual international symposium on Computer architecture
Unbounded Transactional Memory
HPCA '05 Proceedings of the 11th International Symposium on High-Performance Computer Architecture
Virtualizing Transactional Memory
Proceedings of the 32nd annual international symposium on Computer Architecture
Advanced contention management for dynamic software transactional memory
Proceedings of the twenty-fourth annual ACM symposium on Principles of distributed computing
McRT-STM: a high performance software transactional memory system for a multi-core runtime
Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming
Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming
Transactional contention management as a non-clairvoyant scheduling problem
Proceedings of the twenty-fifth annual ACM symposium on Principles of distributed computing
Towards a theory of transactional contention managers
Proceedings of the twenty-fifth annual ACM symposium on Principles of distributed computing
Proceedings of the 12th international conference on Architectural support for programming languages and operating systems
STMBench7: a benchmark for software transactional memory
Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems 2007
TxLinux: using and managing hardware transactional memory in an operating system
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
Polymorphic contention management
DISC'05 Proceedings of the 19th international conference on Distributed Computing
Adaptive software transactional memory
DISC'05 Proceedings of the 19th international conference on Distributed Computing
Steal-on-Abort: Improving Transactional Memory Performance through Dynamic Transaction Reordering
HiPEAC '09 Proceedings of the 4th International Conference on High Performance Embedded Architectures and Compilers
Refereeing conflicts in hardware transactional memory
Proceedings of the 23rd international conference on Supercomputing
Preventing versus curing: avoiding conflicts in transactional memories
Proceedings of the 28th ACM symposium on Principles of distributed computing
Proactive transaction scheduling for contention management
Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture
Scheduling support for transactional memory contention management
Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
Transactional Scheduling for Read-Dominated Workloads
OPODIS '09 Proceedings of the 13th International Conference on Principles of Distributed Systems
On the Impact of Serializing Contention Management on STM Performance
OPODIS '09 Proceedings of the 13th International Conference on Principles of Distributed Systems
Brief announcement: transactional scheduling for read-dominated workloads
DISC'09 Proceedings of the 23rd international conference on Distributed computing
Window-based greedy contention management for transactional memory
DISC'10 Proceedings of the 24th international conference on Distributed computing
On transactional scheduling in distributed transactional memory ystems
SSS'10 Proceedings of the 12th international conference on Stabilization, safety, and security of distributed systems
A competitive analysis for balanced transactional memory workloads
OPODIS'10 Proceedings of the 14th international conference on Principles of distributed systems
LUTS: a lightweight user-level transaction scheduler
ICA3PP'11 Proceedings of the 11th international conference on Algorithms and architectures for parallel processing - Volume Part I
Transaction reordering to reduce aborts in software transactional memory
Transactions on High-Performance Embedded Architectures and Compilers IV
Improving performance by reducing aborts in hardware transactional memory
HiPEAC'10 Proceedings of the 5th international conference on High Performance Embedded Architectures and Compilers
On the impact of serializing contention management on STM performance
Journal of Parallel and Distributed Computing
Reconciling transactional conflicts with compiler's help
Proceedings of the Tenth International Symposium on Code Generation and Optimization
Transactional scheduling for read-dominated workloads
Journal of Parallel and Distributed Computing
Improving performance of software transactional memory through contention locality
The Journal of Supercomputing
Enhancing concurrency in distributed transactional memory through commutativity
Euro-Par'13 Proceedings of the 19th international conference on Parallel Processing
Hugh: a semantically aware universal construction for transactional memory systems
Euro-Par'13 Proceedings of the 19th international conference on Parallel Processing
Techniques to improve performance in requester-wins hardware transactional memory
ACM Transactions on Architecture and Code Optimization (TACO)
Hi-index | 0.00 |
Transactional memory (TM) is a key concurrent programming abstraction. Several software-based transactional memory (STM) implementations have been developed in recent years. All STM implementations must guarantee transaction atomicity but different STM implementations may provide different progress guarantees. In order to ensure progress, an STM implementation must resolve transaction conflicts. This is done either by the implementation itself or by delegating conflict resolution to a separate contention manager module that tries to resolve transaction collisions once they are detected. We present CAR-STM, a scheduling-based mechanism for STM Collision Avoidance and Resolution, that can be incorporated into existing STM implementations. CAR-STM maintains per-core transaction queues and schedules a thread while it is performing a transaction. CAR-STM employs the following two novel collision reduction techniques: (1) seriailizing contention managers resolve conflicts by aborting one transaction and moving it to the transactions queue of the other, effectively serializing the execution of these transactions and ensuring they will not collide again. (2) Proactive collision reduction allows applications to provide information about transactions' collision-probability. CAR-STM uses this information to pre-assign transactions that are more likely to collide to the same core. We have incorporated CAR-STM into the University of Rochester's STM (RSTM) and compared the performance of the new implementation with that of the original RSTM by using STMBench7. Our results show that the new implementation provides orders-of-magnitude reduction of execution times and improved throughput for almost all concurrency levels. Additionally, since CAR-STM greatly reduces the unpredictable influence of operating-system scheduling on STM performance, the new implementation provides a much more stable performance. In contrast, the performance of the original RSTM implementation on STMBench7 workloads exhibits extremely high variance. Though our paper focuses on software transactional memory, we believe the ideas introduced by CAR-STM may prove useful also for hybrid implementations of transactional memory.