首页> 外文会议>ACM SIGPLAN Symposium on Priciples and Practice of Parallel Programming >Compiler Aided Manual Speculation for High Performance Concurrent Data Structures
【24h】

Compiler Aided Manual Speculation for High Performance Concurrent Data Structures

机译:编译器辅助手动猜测高性能并发数据结构

获取原文

摘要

Speculation is a well-known means of increasing parallelism among concurrent methods that are usually but not always independent. Traditional nonblocking data structures employ a particularly restrictive form of speculation. Software transactional memory (STM) systems employ a much more general - though typically blocking - form, and there is a wealth of options in between. Using several different concurrent data structures as examples, we show that manual addition of speculation to traditional lock-based code can lead to significant performance improvements. Successful speculation requires careful consideration of profitability, and of how and when to validate consistency. Unfortunately, it also requires substantial modifications to code structure and a deep understanding of the memory model. These latter requirements make it difficult to use in its purely manual form, even for expert programmers. To simplify the process, we present a compiler tool, CSpec, that automatically generates speculative code from baseline lock-based code with user annotations. Compiler-aided manual speculation keeps the original code structure for better readability and maintenance, while providing the flexibility to chose speculation and validation strategies. Experiments on UltraSPARC and x86 platforms demonstrate that with a small number annotations added to lock-based code, CSpec can generate speculative code that matches the performance of best-effort hand-written versions.
机译:猜测是一种众所周知的同时方法,通常但并不总是独立的并行方法之间的众所周知的方法。传统的非阻塞数据结构采用特别限制的猜测形式。软件事务内存(STM)系统采用更普遍的 - 虽然通常阻塞 - 形式,并且之间存在大量选择。使用几种不同的并发数据结构作为示例,我们显示手动添加到传统的基于锁的代码的猜测可以导致显着的性能改进。成功的猜测需要仔细考虑盈利能力,以及如何以及何时验证一致性。不幸的是,它还需要对代码结构和对存储器模型的深刻理解进行大量修改。后一种要求使其难以在纯粹的手动形式中使用,即使是专家程序员。为简化此过程,我们呈现了一个编译器工具CSPEC,它自动生成基于基于基准锁的代码的推测代码,其中包含用户注释。编译器 - 辅助手动猜测使原始代码结构保持更好的可读性和维护,同时提供了选择猜测和验证策略的灵活性。 UltraSPARC和X86平台上的实验表明,在基于锁定的代码中添加了少数注释,CSPEC可以生成符合最佳努力手写版本的性能的推测代码。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号