Dynamic Data Structures for Betweenness Centrality on Distributed GPUs

 

Project contacts:

Project description:

Centrality metrics are useful for analyzing network structure
since they capture the relative importance of individual vertices in the network.
Betweenness Centrality (BC), is a metric based on the computation of
shortest paths between vertices in the network graph.
Intuitively, BC measures the degree of control a vertex has over
communication between vertices in the network. If G = (V , E)
is a graph and s, t are a pair of vertices, the betweenness score
of a vertex v for this vertex pair is the fraction of shortest
paths between s and t that include v. The BC of v is the sum
of its betweenness scores for all pairs of vertices in the graph.
BC has been used to find key actors in terrorist networks,
study the spread of sexual diseases, and analyze power grid
component failures.

Recently, a new distributed-memory algorithm called Min-
Rounds BC (MRBC) [1] has been shown to be theoretically efficient.
The algorithm has been implemented for distributed CPUs using D-Galois [2],
which uses the Gluon substrate for communication and Galois for computation.
MRBC in D-Galois scales well but it is restricted to CPUs.
The performance can be improved by exploiting GPUs.
In this project, you will implement the MRBC algorithm for distributed GPUs.

The MRBC algorithm uses dynamic data structures like hash tables.
It can be expressed quite easily in Galois because Galois/C++/CPUs support
efficient dynamic data structures. However, support for such data structures
on GPUs is limited, although recent work [3] tries to address that.
You will implement the required dynamic data structures
and implement MRBC for a single GPU using IrGL [4] or CUDA.
Then you can interface with the Gluon substrate to distribute this on
multi-host multi-GPUs.

Hardware:

Project deliverables and deadlines:

Papers:

[1] A round-efficient distributed betweenness centrality algorithm, PPoPP 2019

https://www.cs.utexas.edu/~roshan/MRBC.pdf

[2] Gluon: a communication-optimizing substrate for distributed heterogeneous graph analytics, PLDI 2018

https://www.cs.utexas.edu/~roshan/Gluon.pdf

[3] A dynamic hash table for the GPU, IPDPS 2018,

https://arxiv.org/pdf/1710.11246.pdf

[4] A compiler for throughput optimization of graph algorithms on GPUs, OOPSLA 2016

https://www.cs.rochester.edu/~sree/papers/sree-oopsla2016.pdf