Brief Announcement: Speedups for Parallel Graph Triconnectivity James A. Edwards University of Maryland College Park, Maryland jedward5@umd.edu Uzi Vishkin University of Maryland College Park, Maryland vishkin@umd.edu ABSTRACT We present a parallel solution to the problem of determining the triconnected components of an undirected graph. We obtain signif- icant speedups over the only published optimal (linear-time) serial implementation of a triconnected components algorithm running on a modern CPU. This is accomplished on the PRAM-inspired XMT many-core architecture. To our knowledge, no other parallel implementation of a triconnected components algorithm has been published for any platform. Categories and Subject Descriptors D.1.3 [Programming Techniques]: Concurrent Programming— Parallel programming; C.1.4 [Processor Architectures]: Parallel Architectures Keywords graph algorithm, triconnected components, many-core, PRAM 1. INTRODUCTION A k-(vertex-)cut of an undirected graph is a set of k vertices whose removal results in the graph being disconnected. An undi- rected graph is k-(vertex-)connected if it has no cut of size k - 1 or less. A 1-connected graph is said to be connected, a 2-connected graph biconnected, and a 3-connected graph triconnected.A bicon- nected component of a graph G is a maximal biconnected subgraph of G. The triconnected components of a graph G are defined in [10]. A 2-cut is also called a separation pair. Briefly, assuming that G is biconnected, it is repeatedly split into two subgraphs with respect to one of its separation pairs. Each time G is split using a pair {u, v}, an edge (u, v), called a virtual edge, is added to both subgraphs. When no more splitting is possible, the resulting graphs (called split components) are of one of three types: triconnected graphs, trian- gles (rings of 3 vertices), and triple bonds (multigraphs consist- ing of 3 parallel edges). Then, split components of the same type that share a common virtual edge are merged (the inverse of split- ting); triangles are merged to (recursively) form polygons (rings), and triple bonds are merged to (recursively) form n-bonds (with n parallel edges). The (unique) graphs that result are called the tri- connected components of G. If all the triconnected components of a graph are merged together, the result is the original graph. The triconnected components of a general graph G are the triconnected components of its biconnected components. Copyright is held by the author/owner(s). SPAA’12, June 25–27, 2012, Pittsburgh, Pennsylvania, USA. ACM 978-1-4503-1213-4/12/06. The triconnected components of a graph provide useful informa- tion about the graph, such as the resilience of an underlying net- work to defects. The SPQR-tree of a graph G, with a vertex for every triconnected component of G and an edge between any two components that share a virtual edge, can be used to represent the planar embeddings of a graph; this can be used, for instance, to test whether a graph would remain planar after adding a given edge [1]. In this paper, we evaluate an implementation of an efficient PRAM triconnectivity algorithm on the experimental Explicit Multi-Threading (XMT) architecture, developed at the University of Maryland to ef- ficiently support PRAM-like programming and shown [2, 5] to sup- port some advanced graph algorithms. Nevertheless, the current work represents the most complex algorithm that has been tested on XMT, and uses quite a few building blocks, which are simpler PRAM algorithms. The speedups obtained (up to 129x) and their scalability provide points of reference for comparing XMT to other approaches beyond that of a simple benchmark kernel. The impor- tance of going beyond simple kernels and toy problems for com- paring architectures has long been recognized in the SPEC bench- marks and in the standard text [8]. The source code for our im- plementation is available at http://www.umiacs.umd.edu/ users/vishkin/XMT/OPEN_SOURCE_GRAPH_ALGS/. 2. TRICONNECTIVITY ALGORITHMS For a graph with n vertices and m edges, an efficient O(n + m)-time serial algorithm to determine its triconnected compo- nents based on depth-first search is given by Hopcroft and Tarjan [10]. This algorithm was implemented and tested by Gutwenger and Mutzel [7] and was made available as part of [4]. Neither we nor the authors of [7] are aware of any other publicly-available im- plementation of a linear- (or near-linear-) work triconnected com- ponents algorithm, either serial or parallel. Several parallel triconnectivity algorithms have been described. Miller and Ramachandran (MR) [14] proposed an efficient algo- rithm that runs in O(log 2 n) time while performing O(m log 2 n) work on a CRCW PRAM and is based on finding an open ear de- composition [13] of the input graph. Their algorithm has two parts, one to find the nontrivial candidate sets of the input graph (sets of vertices such that any two vertices in a set are a separation pair) and one to split the graph into its triconnected components based on its nontrivial candidate sets. An earlier algorithm for finding nontriv- ial candidate sets by Ramachandran and Vishkin (RV) [15] required only O(log n) time while still performing O(m log 2 n) work. Our implementation on XMT uses the RV algorithm to find the nontrivial candidate sets and the MR algorithm to split the graph into its triconnected components. The most significant contributor to its runtime is the need to make O(log n) calls to a connected components routine. We use the Shiloach-Vishkin (SV) [16] con-