882 research outputs found
Parallel Batch-Dynamic Graph Connectivity
In this paper, we study batch parallel algorithms for the dynamic
connectivity problem, a fundamental problem that has received considerable
attention in the sequential setting. The most well known sequential algorithm
for dynamic connectivity is the elegant level-set algorithm of Holm, de
Lichtenberg and Thorup (HDT), which achieves amortized time per
edge insertion or deletion, and time per query. We
design a parallel batch-dynamic connectivity algorithm that is work-efficient
with respect to the HDT algorithm for small batch sizes, and is asymptotically
faster when the average batch size is sufficiently large. Given a sequence of
batched updates, where is the average batch size of all deletions, our
algorithm achieves expected amortized work per
edge insertion and deletion and depth w.h.p. Our algorithm
answers a batch of connectivity queries in expected
work and depth w.h.p. To the best of our knowledge, our algorithm
is the first parallel batch-dynamic algorithm for connectivity.Comment: This is the full version of the paper appearing in the ACM Symposium
on Parallelism in Algorithms and Architectures (SPAA), 201
Dynamic Algorithms for the Massively Parallel Computation Model
The Massive Parallel Computing (MPC) model gained popularity during the last
decade and it is now seen as the standard model for processing large scale
data. One significant shortcoming of the model is that it assumes to work on
static datasets while, in practice, real-world datasets evolve continuously. To
overcome this issue, in this paper we initiate the study of dynamic algorithms
in the MPC model.
We first discuss the main requirements for a dynamic parallel model and we
show how to adapt the classic MPC model to capture them. Then we analyze the
connection between classic dynamic algorithms and dynamic algorithms in the MPC
model. Finally, we provide new efficient dynamic MPC algorithms for a variety
of fundamental graph problems, including connectivity, minimum spanning tree
and matching.Comment: Accepted to the 31st ACM Symposium on Parallelism in Algorithms and
Architectures (SPAA 2019
Connectivity Oracles for Graphs Subject to Vertex Failures
We introduce new data structures for answering connectivity queries in graphs
subject to batched vertex failures. A deterministic structure processes a batch
of failed vertices in time and thereafter
answers connectivity queries in time. It occupies space . We develop a randomized Monte Carlo version of our data structure
with update time , query time , and space
for any failure bound . This is the first connectivity oracle for
general graphs that can efficiently deal with an unbounded number of vertex
failures.
We also develop a more efficient Monte Carlo edge-failure connectivity
oracle. Using space , edge failures are processed in time and thereafter, connectivity queries are answered in
time, which are correct w.h.p.
Our data structures are based on a new decomposition theorem for an
undirected graph , which is of independent interest. It states that
for any terminal set we can remove a set of
vertices such that the remaining graph contains a Steiner forest for with
maximum degree
Parallel Finger Search Structures
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 work done by FS is bounded by the finger bound F_L (for some linearization L of D), i.e. each operation on an item with distance r from a finger takes O(log r+1) amortized work. Running P using the simpler version takes O((T_1+F_L)/p + T_infty + d * ((log p)^2 + log n)) time on a greedy scheduler, where T_1, T_infty 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_infty + 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. FS can be extended to 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
Dial a Ride from k-forest
The k-forest problem is a common generalization of both the k-MST and the
dense--subgraph problems. Formally, given a metric space on vertices
, with demand pairs and a ``target'' ,
the goal is to find a minimum cost subgraph that connects at least demand
pairs. In this paper, we give an -approximation
algorithm for -forest, improving on the previous best ratio of
by Segev & Segev.
We then apply our algorithm for k-forest to obtain approximation algorithms
for several Dial-a-Ride problems. The basic Dial-a-Ride problem is the
following: given an point metric space with objects each with its own
source and destination, and a vehicle capable of carrying at most objects
at any time, find the minimum length tour that uses this vehicle to move each
object from its source to destination. We prove that an -approximation
algorithm for the -forest problem implies an
-approximation algorithm for Dial-a-Ride. Using our
results for -forest, we get an -
approximation algorithm for Dial-a-Ride. The only previous result known for
Dial-a-Ride was an -approximation by Charikar &
Raghavachari; our results give a different proof of a similar approximation
guarantee--in fact, when the vehicle capacity is large, we give a slight
improvement on their results.Comment: Preliminary version in Proc. European Symposium on Algorithms, 200
Parallel Batch-Dynamic Trees via Change Propagation
The dynamic trees problem is to maintain a forest subject to edge insertions and deletions while facilitating queries such as connectivity, path weights, and subtree weights. Dynamic trees are a fundamental building block of a large number of graph algorithms. Although traditionally studied in the single-update setting, 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 batch-dynamic algorithms that achieve provably low span is important for many applications.
In this work, we design the first work-efficient parallel batch-dynamic algorithm for dynamic trees that is capable of supporting both path queries and subtree queries, as well as a variety of nonlocal queries. Previous work-efficient dynamic trees of Tseng et al. were only capable of handling subtree queries [ALENEX\u2719, (2019), pp. 92 - 106]. To achieve this, we propose a framework for algorithmically dynamizing static round-synchronous algorithms to obtain parallel batch-dynamic algorithms. 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.
Our dynamic trees algorithm is obtained by applying our dynamization framework to the parallel tree contraction algorithm of Miller and Reif [FOCS\u2785, (1985), pp. 478 - 489], and then performing a novel analysis of the computation distance of this algorithm under batch updates. We show that k updates can be performed in O(klog(1+n/k)) work in expectation, which matches the algorithm of Tseng et al. while providing support for a substantially larger number of queries and applications
- …