7,092 research outputs found
Theoretically Efficient Parallel Graph Algorithms Can Be Fast and Scalable
There has been significant recent interest in parallel graph processing due
to the need to quickly analyze the large graphs available today. Many graph
codes have been designed for distributed memory or external memory. However,
today even the largest publicly-available real-world graph (the Hyperlink Web
graph with over 3.5 billion vertices and 128 billion edges) can fit in the
memory of a single commodity multicore server. Nevertheless, most experimental
work in the literature report results on much smaller graphs, and the ones for
the Hyperlink graph use distributed or external memory. Therefore, it is
natural to ask whether we can efficiently solve a broad class of graph problems
on this graph in memory.
This paper shows that theoretically-efficient parallel graph algorithms can
scale to the largest publicly-available graphs using a single machine with a
terabyte of RAM, processing them in minutes. We give implementations of
theoretically-efficient parallel algorithms for 20 important graph problems. We
also present the optimizations and techniques that we used in our
implementations, which were crucial in enabling us to process these large
graphs quickly. We show that the running times of our implementations
outperform existing state-of-the-art implementations on the largest real-world
graphs. For many of the problems that we consider, this is the first time they
have been solved on graphs at this scale. We have made the implementations
developed in this work publicly-available as the Graph-Based Benchmark Suite
(GBBS).Comment: This is the full version of the paper appearing in the ACM Symposium
on Parallelism in Algorithms and Architectures (SPAA), 201
I/O-optimal algorithms on grid graphs
Given a graph of which the n vertices form a regular two-dimensional grid,
and in which each (possibly weighted and/or directed) edge connects a vertex to
one of its eight neighbours, the following can be done in O(scan(n)) I/Os,
provided M = Omega(B^2): computation of shortest paths with non-negative edge
weights from a single source, breadth-first traversal, computation of a minimum
spanning tree, topological sorting, time-forward processing (if the input is a
plane graph), and an Euler tour (if the input graph is a tree). The
minimum-spanning tree algorithm is cache-oblivious. The best previously
published algorithms for these problems need Theta(sort(n)) I/Os. Estimates of
the actual I/O volume show that the new algorithms may often be very efficient
in practice.Comment: 12 pages' extended abstract plus 12 pages' appendix with details,
proofs and calculations. Has not been published in and is currently not under
review of any conference or journa
Algorithms for detecting dependencies and rigid subsystems for CAD
Geometric constraint systems underly popular Computer Aided Design soft-
ware. Automated approaches for detecting dependencies in a design are critical
for developing robust solvers and providing informative user feedback, and we
provide algorithms for two types of dependencies. First, we give a pebble game
algorithm for detecting generic dependencies. Then, we focus on identifying the
"special positions" of a design in which generically independent constraints
become dependent. We present combinatorial algorithms for identifying subgraphs
associated to factors of a particular polynomial, whose vanishing indicates a
special position and resulting dependency. Further factoring in the Grassmann-
Cayley algebra may allow a geometric interpretation giving conditions (e.g.,
"these two lines being parallel cause a dependency") determining the special
position.Comment: 37 pages, 14 figures (v2 is an expanded version of an AGD'14 abstract
based on v1
Pebbling in Semi-2-Trees
Graph pebbling is a network model for transporting discrete resources that
are consumed in transit. Deciding whether a given configuration on a particular
graph can reach a specified target is -complete, even for diameter
two graphs, and deciding whether the pebbling number has a prescribed upper
bound is -complete. Recently we proved that the pebbling number
of a split graph can be computed in polynomial time. This paper advances the
program of finding other polynomial classes, moving away from the large tree
width, small diameter case (such as split graphs) to small tree width, large
diameter, continuing an investigation on the important subfamily of chordal
graphs called -trees. In particular, we provide a formula, that can be
calculated in polynomial time, for the pebbling number of any semi-2-tree,
falling shy of the result for the full class of 2-trees.Comment: Revised numerous arguments for clarity and added technical lemmas to
support proof of main theorem bette
JGraphT -- A Java library for graph data structures and algorithms
Mathematical software and graph-theoretical algorithmic packages to
efficiently model, analyze and query graphs are crucial in an era where
large-scale spatial, societal and economic network data are abundantly
available. One such package is JGraphT, a programming library which contains
very efficient and generic graph data-structures along with a large collection
of state-of-the-art algorithms. The library is written in Java with stability,
interoperability and performance in mind. A distinctive feature of this library
is the ability to model vertices and edges as arbitrary objects, thereby
permitting natural representations of many common networks including
transportation, social and biological networks. Besides classic graph
algorithms such as shortest-paths and spanning-tree algorithms, the library
contains numerous advanced algorithms: graph and subgraph isomorphism; matching
and flow problems; approximation algorithms for NP-hard problems such as
independent set and TSP; and several more exotic algorithms such as Berge graph
detection. Due to its versatility and generic design, JGraphT is currently used
in large-scale commercial, non-commercial and academic research projects. In
this work we describe in detail the design and underlying structure of the
library, and discuss its most important features and algorithms. A
computational study is conducted to evaluate the performance of JGraphT versus
a number of similar libraries. Experiments on a large number of graphs over a
variety of popular algorithms show that JGraphT is highly competitive with
other established libraries such as NetworkX or the BGL.Comment: Major Revisio
- …