中文

事务内存中并发的代价

分布式、并行与集群计算 2015-11-06 v1

摘要

传统的同步技术基于锁(locking),为线程提供对共享数据的独占访问。粗粒度(coarse-grained)锁通常迫使线程顺序访问大量数据,因此不能完全利用硬件并发。另一方面,程序特定的细粒度(fine-grained)锁或非阻塞(non-blocking,即不使用锁)同步对大多数程序员而言是门黑艺术,且托付给少数计算专家的才智。因此,寻求这两极端间的中间地带颇具吸引力:一种同步机制,既免除程序员推理并发操作可能引发的数据冲突的开销,又不严重限制程序性能。事务内存(Transactional Memory, TM)抽象被提出作为这样一种机制:它旨在将易用的编程接口与多核架构提供的并发计算能力的高效利用相结合。TM允许程序员以投机(speculatively)方式执行共享内存操作序列作为原子事务(atomic transactions),具有全有或全无(all-or-nothing)语义:事务可以提交(commit),此时它表现为顺序执行;或者中止(abort),此时其更新操作不生效。因此,程序员可仅考虑顺序语义设计软件,而让TM在运行时处理并发执行中的冲突。直观上,我们希望TM允许尽可能高的并发:在严重数据冲突缺失时,事务应能并行推进。但TM中提供高度并发的固有代价是什么?这是本论文的核心问题。

关键词

引用

@article{arxiv.1511.01779,
  title  = {On the Cost of Concurrency in Transactional Memory},
  author = {Srivatsan Ravi},
  journal= {arXiv preprint arXiv:1511.01779},
  year   = {2015}
}

备注

Ph.D. Thesis