arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 1908.02741cs.DScs.DC
收藏

并行手指搜索结构

Parallel Finger Search Structures

Seth Gilbert, Wei Quan Lim

摘要:

在本文中,我们提出了两个版本的并行手指结构FS上的p处理器,支持搜索,插入和删除,并有一个手指在每一端。据我们所知,这是并行搜索结构的第一个实现,该结构在手指边界方面是工作最优的,但具有非常好的并行性(在O((log p)^2)的最优因子内)。我们利用一个扩展的隐式编译框架,透明地促进使用FS的任何并行程序P是由一个动态生成的DAG D,其中每个节点是一个单位时间指令或调用FS建模。任一版本的FS所做的总工作由手指界限F[L]限制(对于D的某种线性化L),即对手指距离为r的项目的每个操作都需要O(log r + 1)摊销工作;对于更接近手指的项目更便宜。使用更简单的版本在贪婪调度器上运行P需要O((T[1] + F[L])/ p + T[inf] + d *((log p)^2 + log n))时间,其中T[1],T[inf]分别是D的大小和跨度,n是FS中的最大项目数,d是沿着D中任何路径对FS的最大调用数。使用更快的版本,这减少到O((T[1] + F[L])/ p + T[inf] + d *(log p)^2 + s[L])时间,其中s[L]是D的加权跨度,其中每个对FS的调用都根据F[L]通过其成本进行加权。我们还画出了如何扩展FS以支持固定数量的可移动手指。本文中的数据结构符合动态多线程范式,并且它们的性能界限可直接与同一范式中给出的其他数据结构组合。此外,结果可以转化为实际的实现使用工作窃取的机器人。

英文摘要:

In this paper we present two versions of a parallel finger structure FS on p processors that supports searches, insertions and deletions, and has a finger at each end. This is to our knowledge the first implementation of a parallel search structure that is work-optimal with respect to the finger bound and yet has very good parallelism (within a factor of O( (log p)^2 ) of optimal). We utilize an extended implicit batching framework that transparently facilitates the use of FS by any parallel program P that is modelled by a dynamically generated DAG D where each node is either a unit-time instruction or a call to FS. The total work done by either version of FS is bounded by the finger bound F[L] (for some linearization L of D ), i.e. each operation on an item with finger distance r takes O( log r + 1 ) amortized work; it is cheaper for items closer to a finger. Running P using the simpler version takes O( ( T[1] + F[L] ) / p + T[inf] + d * ( (log p)^2 + log n ) ) time on a greedy scheduler, where T[1],T[inf] are the size and span of D respectively, and n is the maximum number of items in FS, and d is the maximum number of calls to FS along any path in D. Using the faster version, this is reduced to O( ( T[1] + F[L] ) / p + T[inf] + d * (log p)^2 + s[L] ) time, where s[L] is the weighted span of D where each call to FS is weighted by its cost according to F[L]. We also sketch how to extend FS to support a fixed number of movable fingers. The data structures in our paper fit into the dynamic multithreading paradigm, and their performance bounds are directly composable with other data structures given in the same paradigm. Also, the results can be translated to practical implementations using work-stealing schedulers.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑