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
Betweenness 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.