Computer Science > Data Structures and Algorithms
[Submitted on 12 Feb 2020 (this version), latest version 17 May 2020 (v2)]
Title:Batch-dynamic Algorithms via Parallel Change Propagation and Applications to Dynamic Trees
View PDFAbstract:Dynamic algorithms capable of supporting batches of updates are increasingly relevant today due to the emergence of rapidly-evolving dynamic datasets. Since processing updates on a single processor is often unrealistic for large batches of updates, designing parallel dynamic algorithms that achieve provably low span is important for many applications. In this paper, motivated by the difficulty in designing parallel batch-dynamic algorithms by hand, we propose a framework for algorithmically dynamizing static round-synchronous algorithms to obtain parallel batch-dynamic algorithms with good bounds on their work and span.
In our framework, the algorithm designer can apply the technique to any suitably defined static algorithm. We then obtain theoretical guarantees for algorithms in our framework by defining the notion of a computation distance between two executions of the underlying algorithm.
Using this framework, we develop the first work-efficient parallel batch-dynamic algorithm for dynamic trees that supports both subtree queries and path queries, as well as a variety of nonlocal queries such as centers and medians. We further investigate the applicability of the framework by analyzing map-reduce-based computations, and a random-mate list contraction algorithm, which, when dynamized, yields a simple solution to the batch-dynamic lists problem that matches the work bounds of the best known hand-crafted data structure.
Submission history
From: Daniel Anderson [view email][v1] Wed, 12 Feb 2020 18:20:20 UTC (1,959 KB)
[v2] Sun, 17 May 2020 22:56:00 UTC (1,960 KB)
Bibliographic and Citation Tools
Bibliographic Explorer (What is the Explorer?)
Litmaps (What is Litmaps?)
scite Smart Citations (What are Smart Citations?)
Code, Data and Media Associated with this Article
CatalyzeX Code Finder for Papers (What is CatalyzeX?)
DagsHub (What is DagsHub?)
Gotit.pub (What is GotitPub?)
Papers with Code (What is Papers with Code?)
ScienceCast (What is ScienceCast?)
Demos
Recommenders and Search Tools
Influence Flower (What are Influence Flowers?)
Connected Papers (What is Connected Papers?)
CORE Recommender (What is CORE?)
arXivLabs: experimental projects with community collaborators
arXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website.
Both individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them.
Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs.