首页> 外文会议>2010 IEEE International Symposium on Parallel amp; Distributed Processing (IPDPS) >Runtime checking of serializability in software transactional memory
【24h】

Runtime checking of serializability in software transactional memory

机译:运行时检查软件事务存储器中的可串行性

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

摘要

Ensuring the correctness of complex implementations of software transactional memory (STM) is a daunting task. Attempts have been made to formally verify STMs, but these are limited in the scale of systems they can handle [1], [2], [3] and generally verify only a model of the system, and not the actual system. In this paper we present an alternate attack on checking the correctness of an STM implementation by verifying the execution runs of an STM using a checker that runs in parallel with the transaction memory system. With future many-core systems predicted to have hundreds and even thousands of cores [4], it is reasonable to utilize some of these cores for ensuring the correctness of the rest of the system. This will be needed anyway given the increasing likelihood of dynamic errors due to particle hits (soft errors) and increasing fragility of nanoscale devices. These errors can only be detected at runtime. An important correctness criterion that is the subject of verification is the serializability of transactions. While checking transaction serializability is NP-complete, practically useful subclasses such as interchange-serializability (DSR) are efficiently computable [5]. Checking DSR reduces to checking for cycles in a transaction ordering graph which captures the access order of objects shared between transaction instances. Doing this concurrent to the main transaction execution requires minimizing the overhead of capturing object accesses, and managing the size of the graph, which can be as large as the total number of dynamic transactions and object accesses. We discuss techniques for minimizing the overhead of access logging which includes time-stamping, and present techniques for on-the-fly graph compaction that drastically reduce the size of the graph that needs to be maintained, to be no larger than the number of threads. We have implemented concurrent serializability checking in the Rochester Software Transactional Memory (RSTM) system [6]. We prese-n-nnt our practical experiences with this including results for the RSTM, STAMP [7] and synthetic benchmarks. The overhead of concurrent checking is a strong function of the transaction length. For long transactions this is negligible. Thus the use of the proposed method for continuous runtime checking is acceptable. For very short transactions this can be significant. In this case we see the applicability of the proposed method for debugging.
机译:确保软件事务存储器(STM)的复杂实现的正确性是一项艰巨的任务。已经进行了正式验证STM的尝试,但是这些方法限制了它们可以处理的系统规模[1],[2],[3],并且通常仅验证系统模型,而不验证实际系统。在本文中,我们通过使用与事务存储系统并行运行的检查器来验证STM的执行运行,提出了另一种攻击检查STM实现的正确性。随着未来的多核系统预计将拥有数百甚至数千个核[4],合理地利用其中一些核来确保系统其余部分的正确性是合理的。考虑到由于粒子撞击(软错误)导致动态错误的可能性增加以及纳米级设备的易碎性增加,无论如何都将需要这样做。这些错误只能在运行时检测到。验证的一个重要的正确性标准是交易的可序列化性。虽然检查事务的可序列化性是否是NP完整的,但实际上有用的子类(例如互换序列化(DSR))是可以有效计算的[5]。检查DSR简化为检查事务排序图中的周期,该图中捕获了事务实例之间共享的对象的访问顺序。与主事务执行并发执行此操作需要最大程度地减少捕获对象访问和管理图的大小的开销,该开销可能与动态事务和对象访问的总数一样大。我们讨论了使访问日志开销最小化的技术,其中包括时间戳,并提出了用于动态图压缩的技术,该技术可将需要维护的图的大小显着减小,以不超过线程数。我们已经在Rochester软件事务存储(RSTM)系统中实现了并发可串行性检查[6]。我们现在就此提供实践经验,包括RSTM,STAMP [7]和综合基准的结果。并发检查的开销是事务长度的重要函数。对于长交易,这可以忽略不计。因此,使用建议的方法进行连续运行时检查是可以接受的。对于非常短的交易,这可能很重要。在这种情况下,我们看到了所提出的调试方法的适用性。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号