一句话:提出编译器技术,将顺序 C++ 数据抽象自动转换为高性能无锁并发实现,性能接近手工实现并优于 STM。
该论文研究如何利用编译器技术,将队列、栈、映射和树等顺序 C++ 数据抽象自动转换为并发无锁实现。核心挑战在于为不同顺序数据结构自动选择合适的非阻塞同步方案,避免手工编写的复杂性和软件事务内存(STM)的开销。方法上,作者将多种业界实践中的同步方法自动化地适配到底层顺序实现,根据数据结构特征生成同步代码。评估表明,自动同步代码的性能可与专家手工编写的并发数据结构竞争,并显著优于基于 STM 的重量级支持。
This paper investigates using compiler technology to automatically convert sequential C++ data abstractions, e.g., queues, stacks, maps, and trees, to concurrent lock-free implementations. By automatically tailoring a number of state-of-the-practice synchronization methods to the underlying sequential implementations of different data structures, our automatically synchronized code can attain performance competitive to that of manually-written concurrent data structures by experts and much better performance than heavier-weight support by software transactional memory (STM).
DOI 原文 ·
@inproceedings{paperbot5279,
title = {Automating Non-Blocking Synchronization In Concurrent Data Abstractions},
author = {Jiange Zhang and Qing Yi and Damian Dechev},
booktitle = {ASE},
year = {2019},
doi = {10.1109/ase.2019.00074}
}