首页> 外文期刊>ACM SIGPLAN Notices: A Monthly Publication of the Special Interest Group on Programming Languages >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 lockbased 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. Categories and Subject Descriptors D.1.3 [Programming Techniques]: Concurrent Programming-Parallel Programming; D.3.4 [Programming Languages]: Processors-Code generation
机译:推测是一种提高并发方法之间并行性的众所周知的方法,这些并发方法通常是但并不总是独立的。传统的非阻塞数据结构采用了一种特殊的限制形式。软件事务存储(STM)系统采用的通用性更高,尽管通常采用块形式,并且两者之间有很多选择。以几个不同的并发数据结构为例,我们显示了将推测手动添加到传统的基于锁的代码可以带来显着的性能改进。成功的投机需要仔细考虑盈利能力以及如何以及何时验证一致性。不幸的是,它还需要对代码结构进行实质性修改,并对存储模型有深入的了解。后面的这些要求使得即使是熟练的程序员也很难以其纯手工形式使用。为了简化过程,我们提供了一个编译工具CSpec,该工具可以从带有用户注释的基于基线锁定的代码自动生成推测性代码。编译器辅助的手动推测保留了原始代码结构,以提高可读性和维护性,同时提供了选择推测和验证策略的灵活性。在UltraSPARC和x86平台上进行的实验表明,通过在基于锁的代码中添加少量注释,CSpec可以生成与尽力而为的手写版本性能相匹配的推测性代码。类别和主题描述符D.1.3 [编程技术]:并行编程-并行编程; D.3.4 [编程语言]:处理器代码生成

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号