The \emph{Order-Maintenance} (OM) data structure maintains a total order list of items for insertions, deletions, and comparisons. As a basic data structure, OM has many applications, such as maintaining the topological order, core numbers, and truss in graphs, and maintaining ordered sets in Unified Modeling Language (UML) Specification. The prevalence of multicore machines suggests parallelizing such a basic data structure. This paper proposes a new parallel OM data structure that supports insertions, deletions, and comparisons in parallel. Specifically, parallel insertions and deletions are synchronized by using locks efficiently, which achieve up to $7$x and $5.6$x speedups with $64$ workers. One big advantage is that the comparisons are lock-free so that they can execute highly in parallel with other insertions and deletions, which achieve up to $34.4$x speedups with $64$ workers. Typical real applications maintain order lists that always have a much larger portion of comparisons than insertions and deletions. For example, in core maintenance, the number of comparisons is up to 297 times larger compared with insertions and deletions in certain graphs. This is why the lock-free order comparison is a breakthrough in practice.
翻译:\emph{ Order-Mainter-Maintenance} (OM) 数据结构保持了插入、删除和比较项目的总顺序列表。 作为基本数据结构,OM有许多应用程序,例如维持图表中的表层顺序、核心数字和 truss, 以及维持统一模拟语言(UML) 规格的定购组。多极机器的流行表明将这种基本数据结构平行。本文建议建立一个新的平行的OM数据结构,支持插入、删除和平行比较。具体地说,平行的插入和删除通过高效地使用锁来同步,达到最高7美元x和5.6美元xxx超速,与64美元工人一起达到7美元和5.6xx超速。一个大的优势是,比较是无锁,以便它们与其他插入和删除的规格保持高度同步,从而达到34.4x的超速加64美元工人。典型的实际应用程序维持的顺序清单总是比插入和删除的要大得多。例如,在核心维护方面,比较的次数是高达297倍,而与插入和删除的图表中的偏差是锁。