一种动态消除-组合栈算法
分布式、并行与集群计算
2011-07-01 v1
摘要
构建可扩展并发数据结构的两个关键同步范式是软件组合和消除。基于消除的并发数据结构允许具有相反语义的操作(如栈的压入和弹出操作)“碰撞”并交换值,而无需访问中心位置。另一方面,当碰撞的操作具有相同语义时,软件组合是有效的:当一对执行相同语义操作的线程碰撞时,执行组合操作集的任务被委托给其中一个线程,另一个线程等待其操作被执行。迭代应用此机制可以减少内存争用并提高吞吐量。先前最具可扩展性的并发栈算法是消除退避栈。消除退避栈为压入和弹出操作数量大致相等的对称工作负载提供了高并行性,但当工作负载不对称时,其性能会下降。我们提出了DECS,一种新颖的动态消除-组合栈算法,该算法对所有工作负载类型都具有良好的可扩展性。在保持消除退避栈的简单性和低开销的同时,DECS设法从相同语义和相反语义操作的碰撞中获益。我们的实证评估表明,DECS的可扩展性显著优于先前最佳的阻塞和非阻塞栈算法。
引用
@article{arxiv.1106.6304,
title = {A Dynamic Elimination-Combining Stack Algorithm},
author = {Gal Bar-Nissan and Danny Hendler and Adi Suissa},
journal= {arXiv preprint arXiv:1106.6304},
year = {2011}
}