Corpus ID: 2088756

Towards a Library of Parallel Graph Algorithms in Java

  title={Towards a Library of Parallel Graph Algorithms in Java},
  author={M. D. Heus},
Despite the wide availability of multi-core processors and the popularity of Java, there is currently no library for parallel graph algorithms in Java available. Such a library would enable all Java programmers, especially those who work on the verification of programs and model checking to efficiently use graph algorithms. To find out what would be a good design for this library, we have made a start on it. We have created a general design for algorithms and graphs in the library. We have also… Expand
Implementing Parallel Topological Sort in a Java Graph Library
This study has extended the library implemented by De Heus with the parallel topological sort algorithm and has improved the control sequences used by the library, creating an extended, improved Java implemented library of parallel graph algorithms. Expand
Designing a Multicore Graph Library
Magical, a new OpenMP-based C++ multicore graph library is described, to provide an implementation of graph algorithms which is designed for multicore architectures, by means of an easy to use application programming interface. Expand


Single-Source Shortest Paths with the Parallel Boost Graph Library
The implementation of three parallel variants of Dijkstra’s single-source shortest paths algorithm in the Parallel BGL is described and experimental evaluation of these implementations are provided using synthetic and realworld benchmark graphs from the 9th DIMACS Implementation Challenge. Expand
Designing a Generic Graph Library Using ML Functors
OCAMLGRAPH, a highly generic graph library for the programming language OCAML, features a large set of graph data structures—directed or undirected, with or without labels on vertices and edges, as persistent or mutable data structures, etc.—and a largeSet of graph algorithms. Expand
The Parallel BGL : A Generic Library for Distributed Graph Computations
This paper presents the Parallel BGL, a generic C ++ library for distributed graph computation. Like the sequential Boost Graph Library (BGL) upon which it is based, the Parallel BGL applies theExpand
Lifting sequential graph algorithms for distributed-memory parallel computation
This paper revisits the abstractions comprising the Boost Graph Library in the context of distributed-memory parallelism, lifting away the implicit requirements of sequential execution and a single shared address space and develops general principles and patterns for using (and reusing) generic, object-oriented parallel software libraries. Expand
Towards Modeling the Performance of a Fast Connected Components Algorithm on Parallel Machines
A portable, high-performance algorithm for connected components on modern distributed memory multiprocessors that is a hybrid of the classic DFS on the subgraph local to each processor and a variant of the Shiloach-Vishkin PRAM algorithm on the global collection of subgraphs is presented. Expand
A Parallelization of Dijkstra's Shortest Path Algorithm
A PRAM algorithm is given based on Dijkstra's sequential SSSP algorithm into a number of phases, such that the operations within a phase can be done in parallel. Expand
Parallel depth first search. Part I. Implementation
A parallel formulation of depth-first search which retains the storage efficiency of sequential depth- first search and can be mapped on to anyMIMD architecture is presented and results show that hypercube and sharedmemory architectures are significantly better. Expand
A comparison of parallel algorithms for connected components
Improvements are given for the first two to improve performance significantly, although without improving their asymptotic complexity, and for the hybrid, which combines features of the others and is generally the fastest of those tested. Expand
A Simple Parallel Algorithm for the Single-Source Shortest Path Problem on Planar Digraphs
A simple parallel algorithm for the single-source shortest path problem in planar digraphs with nonnegative real edge weights, based on a region decomposition of the input graph and uses a well-known parallel implementation of Dijkstra's algorithm. Expand
Identifying Strongly Connected Components in Parallel
A divide-and-conquer algorithm for strongly connected components which has significantly greater potential for parallelization and the expected serial running time of this algorithm to be O(n log n) is described. Expand