...
【24h】

Language Constructs for Transactional Memory

机译:交易记忆的语言构造

获取原文
获取原文并翻译 | 示例
           

摘要

Building concurrent shared-memory data structures is a notori-ously difficult problem, and so the widespread move to multi-coreand multi-processor hardware has led to increasing interest in lan-guage constructs that may make concurrent programming easier.One technique that has been studied widely is the use of atomicblocks [3] built over transactional memory (TM) [2]: the program-mer marks a section of code as atomic, and the language imple-mentation speculatively executes it using transactions [1]. Transac-tions can run in parallel so long as they access different data. In this talk I'll introduce some of the challenges that I've seenin building robust implementations of this idea. What are the lan-guage design choices that exist? What language features can beused inside atomic blocks, and where can atomic blocks oc-cur? Which uses of atomic blocks should be considered correct,and which uses should be considered "racy"? What are the likelyimpacts of different design choices on performance? What are theimpacts on flexibility for the language implementer, and what arethe impacts on flexibility to the programmer using these constructs? I'll argue that one way of trying to resolve these questions isto be rigorous about keeping the ideas of atomic blocks andTM separate; in practice they've often been conflated (not leastin languages that I've worked on). I'll argue that, when thinkingabout atomic blocks, we should keep a wide range of possibleimplementations in mind (for example, TM, lock inference, orsimply control over pre-emption). Similarly, when thinking aboutTM, we should recognize that it can be exposed to programmersthrough a wide range of abstractions and language constructs.
机译:建立并发共享内存数据结构是一个非常困难的问题,因此向多核和多处理器硬件的广泛迁移导致人们对语言结构的兴趣日益浓厚,这可能会使并发编程变得更加容易。被广泛研究的是在事务性存储器(TM)[2]上建立的原子块[3]的使用:程序员将一段代码标记为原子的,而语言实现则通过事务[1]推测性地执行它。事务可以并行运行,只要它们访问不同的数据即可。在本演讲中,我将介绍在构建此想法的可靠实现时遇到的一些挑战。存在哪些语言设计选择?原子块内可以使用哪些语言功能,原子块可以在哪里出现?原子块的哪些用途应该被认为是正确的,原子用途的哪些用途应该被视为“文明”?不同设计选择对性能的可能影响是什么?对语言实现者的灵活性有什么影响?使用这些构造对程序员的灵活性有什么影响?我将争辩说,解决这些问题的一种方法是严格保持原子块和TM的思想分离。在实践中,它们经常被混淆(尤其是在我使用过的语言中)。我将争辩说,在考虑原子块时,我们应牢记各种可能的实现方式(例如,TM,锁推论或仅控制抢占)。同样,在考虑TM时,我们应该认识到它可以通过广泛的抽象和语言结构向程序员公开。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号