摘要
多核处理器性能的发挥依靠程序的并行,共享存储并行编程模型为大多数多核处理器所采用,而有效同步多个线程对共享变量的访问是其关键、也是难题.借鉴数据库中事务的思想,人们提出事务存储(transactional memory),旨在提供一种编程简单,对程序正确性推理容易的同步手段.简介了事务存储的起源,诠释了事务存储系统的概念.论述了事务存储的编程接口和执行模型.讨论了事务存储系统所涉及的主要内容,对各种方法和策略进行了比较.对事务存储中有待解决的问题进行了探讨.最后介绍了几个开源的事务存储研究平台.
Exploring multi-core processors' performance depends on the parallelism in programs. Shared memory model is widely adopted by multi-core processors, and coordinating access to shared variables among threads is the key and a very difficult problem as well. Lock mechanism is widely used for the synchronization between threads. However, conventional locking techniques in parallel systems have some common problems: priority inversion, convoying and deadlock. Transactional memory (TM) is proposed to make synchronization easy to realize and efficient, which adopts the transaction concept in database systems. Transactions in transactional memory with the atomicity, consistency and isolation properties provide a foundation to ensure that concurrent reads and writes of shared data do not produce inconsistent or incorrect results and execute atomically. Transactional memory attracts a lot of research interests now. Transactional memory research is still in progress and has not been systematized yet. The authors introduce the origin of transactional memory, and attempt to give a definition of transactional memory system. Transactional memory programming interface and its.execution model are shown. TM's design space and its realization strategies are discussed and different techniques used in these aspects are compared. Transactional memory is not a parallel programming panacea. Several open issues are discussed then. Finally, a few open source research platforms are introduced.
出处
《计算机研究与发展》
EI
CSCD
北大核心
2009年第8期1386-1398,共13页
Journal of Computer Research and Development
基金
国家"八六三"高技术研究发展计划基金项目(2008AA01Z110)
国家自然科学基金重点项目(60633050)~~
关键词
事务存储
多核处理器
共享存储
并行编程
同步
transactional memory
multi-core processor
shared memory
parallel programming synchronization