Alternative implementations of two-level adaptive branch prediction
ISCA '92 Proceedings of the 19th annual international symposium on Computer architecture
Transactional memory: architectural support for lock-free data structures
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
Parallel Computer Architecture: A Hardware/Software Approach
Parallel Computer Architecture: A Hardware/Software Approach
Multiple Reservations and the Oklahoma Update
IEEE Parallel & Distributed Technology: Systems & Technology
Software transactional memory for dynamic-sized data structures
Proceedings of the twenty-second annual symposium on Principles of distributed computing
Time-based transactional memory with scalable time bases
Proceedings of the nineteenth annual ACM symposium on Parallel algorithms and architectures
An effective hybrid transactional memory system with strong isolation guarantees
Proceedings of the 34th annual international symposium on Computer architecture
Maintaining Consistent Transactional States without a Global Clock
SIROCCO '08 Proceedings of the 15th international colloquium on Structural Information and Communication Complexity
Stretching transactional memory
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Making STMs Cache Friendly with Compiler Transformations
PACT '11 Proceedings of the 2011 International Conference on Parallel Architectures and Compilation Techniques
Conflict detection and validation strategies for software transactional memory
DISC'06 Proceedings of the 20th international conference on Distributed Computing
DISC'06 Proceedings of the 20th international conference on Distributed Computing
AGC: adaptive global clock in software transactional memory
Proceedings of the 2012 International Workshop on Programming Models and Applications for Multicores and Manycores
Hi-index | 0.00 |
A popular method to maintain consistency in software transactional memory (STM) is global version clock whose values are used to tag memory locations. This method is not efficient when transactional commit occurs frequently since contention over the global clock generates costly cache coherence invalidations and degrades performance. The alternative method is thread local clock (TLC) which exploits decentralized local variables to maintain consistent states in transactions. However, TLC may lead to false aborts and increase runtime of programs. In this work, we introduce Adaptive Versioning (AV) which dynamically selects one of the two validation techniques based on probability of conflicts. We show that AV is effective and improves performance of transactional applications significantly.