Single-Source Betweenness Centrality
#
Problem Specification#
Input, an undirected graph, and a source . The input graph can either be undirected, or directed.
#
OutputOutput: , a mapping from each vertex to the centrality contribution from all shortest paths that pass through . Please see below for the definition.
#
DefinitionsBetweenness centrality is a classic tool in social network analysis for measuring the importance of vertices in a network.
We require several definitions to properly specify the benchmark.
- Define to be the total number of shortest paths, to be the number of shortest paths that pass through , and to be the \defn{pair-dependency} of and on .
- The betweenness centrality of a vertex is equal to , i.e. the sum of pair-dependencies of shortest-paths passing through .
- Brandes proposes an algorithm to compute the betweenness centrality values based on the dependency of a vertex: the dependency of a vertex on a vertex is .
The single-source betweenness centrality benchmark is to compute these dependency values for each vertex given a source vertex.
#
Algorithm ImplementationsWe provide an implementation of single-source betweenness centrality based on the implementation from Ligra. We note that our implementation achieves speedups over the Ligra implementation by using contention-avoiding primitives from the GBBS interface. The code for our implemenation is available here.
#
Cost BoundsThe algorithm runs in work and depth. Please Section 6.1 of [1] for details.
#
Compiling and RunningThe benchmark can be compiled by running:
It can then be run on a test input graph in the uncompressed format as follows:
It can then be run on a test input graph in the compressed format as follows:
#
References[1] Laxman Dhulipala, Guy Blelloch, and Julian Shun
Theoretically Efficient Parallel Graph Algorithms Can Be Fast and Scalable
Proceedings of the ACM Symposium on Parallelism in Algorithms and Architectures (SPAA), pp. 393-404, 2018.