【24h】

Quantitative Relaxation of Concurrent Data Structures

机译:并行数据结构的数量松弛

获取原文

摘要

There is a trade-off between performance and correctness in implementing concurrent data structures. Better performance may be achieved at the expense of relaxing correctness, by redefining the semantics of data structures. We address such a redefinition of data structure semantics and present a systematic and formal framework for obtaining new data structures by quantitatively relaxing existing ones. We view a data structure as a sequential specification containing all 'legal' sequences over an alphabet of method calls. Relaxing the data structure corresponds to defining a distance from any sequence over the alphabet to the sequential specification: the k-relaxed sequential specification contains all sequences over the alphabet within distance k from the original specification. In contrast to other existing work, our relaxations are semantic (distance in terms of data structure states). As an instantiation of our framework, we present two simple yet generic relaxation schemes, called out-of-order and stuttering relaxation, along with several ways of computing distances. We show that the out-of-order relaxation, when further instantiated to stacks, queues, and priority queues, amounts to tolerating bounded out-of-order behavior, which cannot be captured by a purely syntactic relaxation (distance in terms of sequence manipulation, e.g. edit distance). We give concurrent implementations of relaxed data structures and demonstrate that bounded relaxations provide the means for trading correctness for performance in a controlled way. The relaxations are mono-tonic, which further highlights the trade-off: increasing k increases the number of permitted sequences, which as we demonstrate can lead to better performance. Finally, since a relaxed stack or queue also implements a pool, we obtain new concurrent pool implementations that outperform the state-of-the-art ones.
机译:在实现并发数据结构时,需要在性能和正确性之间进行权衡。通过重新定义数据结构的语义,可以以放宽正确性为代价来实现更好的性能。我们解决了对数据结构语义的这种重新定义,并提出了一种通过定量放松现有数据结构来获取新数据结构的系统和正式框架。我们将数据结构视为一个顺序规范,其中包含方法调用字母上的所有“合法”序列。放松数据结构对应于定义从字母表上的任何序列到顺序规范的距离:k松弛的顺序规范包含距原始规范距离k以内的字母表上的所有序列。与其他现有工作相反,我们的放松是语义上的(根据数据结构状态的距离)。作为我们框架的实例,我们提出了两种简单而通用的松弛方案,称为无序松弛和口吃松弛,以及几种计算距离的方法。我们显示出无序松弛,当进一步实例化到堆栈,队列和优先级队列时,意味着可以忍受有限的无序行为,这不能通过纯粹的语法松弛来捕获(按序列操作的距离) ,例如编辑距离)。我们给出放松数据结构的并发实现,并证明有界放松提供了一种以受控方式交换性能正确性的方法。松弛是单调的,这进一步突出了折衷:增加k会增加允许序列的数量,正如我们所展示的,这可以导致更好的性能。最后,由于轻松的堆栈或队列也实现了池,因此我们获得了新的并发池实现,这些实现优于最新的并发池实现。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号