V∗) is identified by traversing a possibly larger scope of vertices (denoted as V+) such that V∗⊆V+. There are
two main algorithms for maintaining core numbers over dynamic graphs, Traversal [18] and Order [17]. Given an
inserted edge, the Traversal algorithm searches V∗by performing a depth-first graph traversal within a subcore, a
connected region of vertices with the same core numbers. For the Order algorithm, the size of V+is significantly
reduced, so the ratio |V+|/|V∗|is typically much smaller and has less variation compared to the Traversal algorithm.
Thus, the computational time is significantly improved. The experiments in [17] show that for edge insertion, Order
significantly outperforms Traversal over all tested graphs with up to 2,083 times speedups; for the edge removal,
Order outperforms Traversal over most of the tested graphs with up to 11 times speedups. Furthermore, based on
the Order algorithm, a Simplified-Order algorithm is proposed in [16], which is easier to implement and to argue for
correctness; also, Simplified-Order has improved time complexities by adopting the Order Maintenance (OM) data
structure to maintain the order of all vertices.
All the above methods are sequential for maintaining core over dynamic graphs, meaning they handle only one
edge insertion or removal at a time. The problem is that when a burst of many inserted or removed edges comes
in, these edges may not be handled on time to keep up with the data stream [14]. The prevalence of multi-core
machines suggests parallelizing the core maintenance algorithms. Many multi-core parallel batch algorithms for core
maintenance have been proposed in [22, 23, 24]. These algorithms are based on similar ideas: 1) they use an available
structure, e.g. Join Edge Set [22], to preprocess a batch of inserted or removed edges, avoiding repeated computations,
and 2) each worker performs the Traversal algorithm. However, there are three drawbacks to these approaches. First,
they are based on the sequential Traversal algorithm [20, 21], which is proved to be less efficient than the Order
algorithm [22, 16]. Second, parallelism can be exploited only for affected vertices with different core numbers; the
algorithm is reduced to running sequentially when all affected vertices have the same core numbers. Third, the time
complexities are not analyzed by the work-depth model [25], where the work Wis its sequential running time, and
the depth Dis its running time on an infinite number of processors.
To overcome the above drawbacks, inspired by the Simplified-Order algorithm [16], we propose a new parallel
batch algorithm, called Parallel-Order, to maintain core numbers after batches of edges insertions or removals in
dynamic graphs. Based on maintaining the k-order with the parallel OM data structure, we can parallelize the Order
algorithm. 1) For edge insertion, the idea is straightforward: each worker handles one inserted edge at a time and
propagates the affected vertices in k-order, such that only the traversed vertices in V+are locked. When traversing
v∈V+, not all neighbors u∈v.adj need to be locked if u<V+. When another worker tries to access these vertices, it
must wait until they are unlocked. Since all affected vertices are locked in korder, this method does not have blocking
cycles that lead to a deadlock. 2) Edge removal is more challenging than edge insertion. The idea is that each worker
handles one removed edge at a time and propagates the affected vertices, such that only the traversed vertices in V∗
are locked. When traversing v∈V∗, not all neighbors u∈v.adj need to be locked if u<V∗. The problem is that this
method may cause blocking cycles that lead to a deadlock as all affected vertices are traversed without any order. We
propose a novel mechanism to avoid such deadlocks. The main contributions of this work are summarized below:
•We investigate the drawbacks of the state-of-the-art parallel core maintenance algorithms [22, 23, 24].
•Based on the parallel OM data structure[26] and the Simplified-Order core maintenance algorithm[16], we
propose a Parallel-Order edge insertion algorithm for core maintenance. Only the traversed vertices in V+
are locked for synchronization. We also implement the priority queue Qcombined with the parallel OM data
structure to obtain a vertex in Qwith a minimal k-order.
•We propose a Parallel-Order edge removal algorithm for core maintenance and a novel mechanism to avoid
blocking cycles that lead to a deadlock. Only the traversed vertices in V∗are locked for synchronization.
•We prove the correctness of our Parallel-Order insertion and removal core maintenance algorithms; we also
prove the time complexities with the work-depth model.
•We conduct extensive experiments on a 64-core machine over various graphs to evaluate the Parallel-Order
algorithms for edge insertion and removal.
We analyze our parallel algorithms in the standard work-depth model [27]. The work, denoted as W, is the total
number of operations that the algorithm uses. The depth, denoted as D, is the longest chain of sequential operations.
2