In this paper we present two versions of a parallel working-set map on p processors that supports searches, insertions and deletions. In both versions, the total work of all operations when the map has size at least p is bounded by the working-set bound, i.e., the cost of an item depends on how recently it was accessed (for some linearization): accessing an item in the map with recency r takes O(1 + log r) work. In the simpler version each map operation has O(log p)2 + log n span (where n is the maximum size of the map). In the pipelined version each map operation on an item with recency r has O(log p)2 + log r span. (Operations in parallel may have overlapping span; span is additive only for operations in sequence.) Both data structures are designed to be used by a dynamic multithreading parallel program that at each step executes a unit-time instruction or makes a data structure call. To achieve the stated bounds, the pipelined version requires a weak-priority scheduler, which supports a limited form of 2-level prioritization. At the end we explain how the results translate to practical implementations using work-stealing schedulers. To the best of our knowledge, this is the first parallel implementation of a self-adjusting search structure where the cost of an operation adapts to the access sequence. A corollary of the working-set bound is that it achieves work static optimality: the total work is bounded by the access costs in an optimal static search tree. The full version of this paper is at http://arxiv.org/abs/1805.05787.
CITATION STYLE
Agrawal, K., Gilbert, S., & Lim, W. Q. (2018). Parallel working-set search structures. In Annual ACM Symposium on Parallelism in Algorithms and Architectures (pp. 321–332). Association for Computing Machinery. https://doi.org/10.1145/3210377.3210390
Mendeley helps you to discover research relevant for your work.