...
【24h】

Debugging programs that use atomic blocks and transactional memory

机译:使用原子块和事务性存储器的调试程序

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

获取外文期刊封面封底 >>

       

摘要

With the emergence of research prototypes, programming using atomic blocks and transactional memory (TM) is becoming more attractive. This paper describes our experience building and using a debugger for programs written with these abstractions. We introduce three approaches: (i) debugging at the level of atomic blocks, where the programmer is shielded from implementation details (such as exactly what kind of TM is used, or indeed whether lock inference is used instead), (ii) debugging at the level of transactions, where conflict rates, read sets, write sets, and other TM internals are visible, and (iii) debug-time transactions, which let the programmer manipulate synchronization from within the debugger— e.g., enlarging the scope of an atomic block to try to identify a bug. In this paper we explain the rationale behind the new debugging approaches that we propose.We describe the design and implementation of an extension to the WinDbg debugger, enabling support for C# programs using atomic blocks and TM.We also demonstrate the design of a “conflict point discovery” technique for identifying program statements that introduce contention between transactions. We illustrate how these techniques can be used by optimizing a C# version of the Genome application from STAMP TM benchmark suite.
机译:随着研究原型的出现,使用原子块和事务存储(TM)进行编程变得越来越有吸引力。本文描述了我们为使用这些抽象编写的程序构建和使用调试器的经验。我们介绍了三种方法:(i)在原子块级别进行调试,使程序员不受实现细节的影响(例如,确切地使用了哪种TM,或者实际上是否使用锁推理),(ii)在事务级别,其中可以看到冲突率,读取集,写入集和其他TM内部,以及(iii)调试时事务,这使程序员可以从调试器内部操纵同步,例如,扩大原子范围尝试识别错误。在本文中,我们解释了我们提出的新调试方法的基本原理。我们描述了WinDbg调试器扩展的设计和实现,从而支持使用原子块和TM支持C#程序。我们还演示了“冲突”的设计。点发现”技术,用于识别在交易之间引入竞争的程序语句。我们说明了如何通过优化来自STAMP TM基准套件的Genome应用程序的C#版本来使用这些技术。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号