Adaptive Versioning in Transactional Memory Systems

Adaptive Versioning in Transactional Memory Systems
复制标题

DOI:
10.3390/a14060171
复制
发表时间:
2021-05
期刊:
影响因子:
2.3
通讯作者:
Pavan Poudel;Gokarna Sharma
Pavan Poudel;Gokarna Sharma
中科院分区:
--
文献类型:
--
作者:
Pavan Poudel;Gokarna Sharma

文献摘要

相似文献

超高速存储器一直受到学术界和工业界的广泛关注。在事务存储器中,程序代码被分割成事务,即看起来像是原子地执行的代码块。事务被推测性地执行,并且推测性执行通过数据版本化机制来支持。懒惰版本控制使中止快速但惩罚提交,而渴望版本控制使提交快速但惩罚中止。然而,是否使用早期或惰性版本来执行这些事务仍然是一个激烈争论的话题。懒惰版本控制似乎适合于写为主的工作负载和高争用场景中的事务,而渴望版本控制似乎适合于读为主的工作负载和低争用场景中的事务。这需要对工作负载和争用场景有先验知识,以选择适当的版本控制方法来实现更好的性能。在本文中,我们提出了一种自适应版本控制方法,称为Adaptive,它在运行时动态地在渴望和懒惰版本控制之间切换,而不需要关于工作负载和争用场景的先验知识,而是基于适当的系统参数,因此事务内存系统的性能总是优于单独使用渴望或懒惰版本控制所获得的性能。我们为持久性和非持久性事务内存系统提供自适应,使用适合这些系统的性能参数。我们在最新的软件事务内存发行版TinySTM中实现了自适应版本控制方法,并通过STAMP和STAMPEDE套件的5个微基准测试和8个复杂基准测试对其进行了广泛的评估。结果表明,我们的方法的显着好处。具体来说,在持久性TM系统中,我们的方法在执行时间上实现了1.5倍的性能改进,在中止次数上实现了240倍的性能改进,而在非持久性事务内存系统中,我们的方法在执行时间上实现了6.3倍的性能改进,在中止次数上实现了170倍的性能改进。
Transactional memory has been receiving much attention from both academia and industry. In transactional memory, program code is split into transactions, blocks of code that appear to execute atomically. Transactions are executed speculatively and the speculative execution is supported through data versioning mechanism. Lazy versioning makes aborts fast but penalizes commits, whereas eager versioning makes commits fast but penalizes aborts. However, whether to use eager or lazy versioning to execute those transactions is still a hotly debated topic. Lazy versioning seems appropriate for write-dominated workloads and transactions in high contention scenarios whereas eager versioning seems appropriate for read-dominated workloads and transactions in low contention scenarios. This necessitates a priori knowledge on the workload and contention scenario to select an appropriate versioning method to achieve better performance. In this article, we present an adaptive versioning approach, called Adaptive, that dynamically switches between eager and lazy versioning at runtime, without the need of a priori knowledge on the workload and contention scenario but based on appropriate system parameters, so that the performance of a transactional memory system is always better than that is obtained using either eager or lazy versioning individually. We provide Adaptive for both persistent and non-persistent transactional memory systems using performance parameters appropriate for those systems. We implemented our adaptive versioning approach in the latest software transactional memory distribution TinySTM and extensively evaluated it through 5 micro-benchmarks and 8 complex benchmarks from STAMP and STAMPEDE suites. The results show significant benefits of our approach. Specifically, in persistent TM systems, our approach achieved performance improvements as much as 1.5× for execution time and as much as 240× for number of aborts, whereas our approach achieved performance improvements as much as 6.3× for execution time and as much as 170× for number of aborts in non-persistent transactional memory systems.