This blog briefly summarises my GSoC 2018 project (Parallel Graph Development) and the results achieved. For a detailed description, please refer to my GSoC blog.
The project is spread over the LightGraphs codebase. It involved:
Producing parallel implementations of crucial graph algorithms.
Improving sequential implementation of crucial graph algorithms in LightGraphs.
Implementing heuristics to obtain good solutions to crucial NP-Hard graph problems.
The benchmarks were conducted on a 64-bit linux machine using 4 cores.
No. | Graph | Vertices | Edges |
---|---|---|---|
1 | Twitter Social Circles | 81,306 | 1,342,310 |
2 | Astro-Physics Collaboration | 17,903 | 197,031 |
3 | Facebook Social Circles | 4,039 | 88,234 |
The graphs were obtained from the SNAPDatasets repository.
Algorithm | Astro-Physics | ||
---|---|---|---|
Breadth-First Search | 1.92 | 2.59 | 1.54 |
PageRank | 1.77 | 1.54 | 1.65 |
Bellman Ford SSSP | - | - | 1.88 |
Floyd Warshall APSP | - | - | 1.27 |
Johnson APSP | - | - | 2.10 |
Randomized Heuristic | 1.88 | 1.70 | 1.66 |
Betweenness Centrality | - | - | 1.96 |
Closeness Centrality | - | - | 2.17 |
Stress Centrality | - | - | 1.66 |
Algorithm | Astro-Physics | ||
---|---|---|---|
PageRank | 3.05 | 3.37 | 3.17 |
Dijkstra SSSP | 2.80 | 2.10 | 1.68 |
Prim MST | 7.65 | 4.25 | 4.05 |
Kruskal MST | 7.70 | 3.37 | 2.80 |
Algorithm | Astro-Physics | ||
---|---|---|---|
Parallel | 7.07 | 1.20 | 0.26 |
Sequential | 13.63 | 3.11 | 0.41 |
This section lists the functionality implemented and a link to the corresponding branch in my cloned LightGraphs repository.
The following branches have been merged into LightGraphs master:
Minimum Vertex Cover
Minimum Dominating Set
Maximum Independent Set
Vertex Connectivity
Multi-threaded Centrality Measures
Betweeness Centrality
Closeness Centrality
Stress Centrality
The following branches have not been merged into LightGraphs master as the functionality is not suitable to LightGraphs:
The following branches have not been merged into LightGraphs as the parallel implementations are slower than the sequential implementation:
I would like to thank my mentor, Divyansh Srivastava and LightGraphs co-owner, Seth Bromberger for reviewing my code and providing valuable advice during the summer. I would also like to thank The Julia Project and NUMFocus for sponsoring my attendance to JuliaCon 2018.