首页> 外文会议>IEEE International Symposium on Parallel Distributed Processing >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 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, 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. 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. We present our practical experienc- - es with this including results for the RSTM, STAMP 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)复杂实现的正确性是令人生畏的任务。已经尝试正式验证STMS,但这些是可以处理的系统规模的限制,并且通常只验证系统的模型,而不是实际系统。在本文中,我们通过使用与事务存储系统并行运行的检查器验证STM的执行运行,介绍了检查STM实现的正确性的替代攻击。未来的许多核心系统预测有数百个甚至数千个核心,可以使用一些这些核心来确保系统其余部分的正确性是合理的。如果由于粒子命中(软误差)和纳米级器件的增加脆弱,鉴于动态误差的可能性越来越可能,这将是必要的。这些错误只能在运行时检测到。是验证主题的重要正确标准是交易的序列化性。虽然检查事务序列化是NP-Treation的,但实际上有用的子类,如互换 - 序列化(DSR)是有效的计算。检查DSR缩短以检查交易订购图中的周期,该图捕获事务实例之间共享的对象的访问顺序。执行此并发到主事务执行需要最小化捕获对象访问的开销,并管理图表的大小,这可以与动态事务和对象访问的总数大。我们讨论最小化访问记录的开销的技术,该技术包括时间戳,以及用于在飞行图形压缩的现有技术大大减小需要维护的图表的大小,不大于线程的数量。我们已经在罗切斯特软件交易存储器(RSTM)系统中实现了并发序列化检查。我们展示了我们的实践经验 - es,包括RSTM,邮票和合成基准的结果。并发检查的开销是交易长度的强功能。对于长时际交易,这可以忽略不计。因此,使用所提出的连续运行时检查方法是可接受的。对于非常短的交易,这可能很重要。在这种情况下,我们可以看到所提出的调试方法的适用性。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号