  PageRank is a widely used centrality measure that "ranks" vertices in a graph
by considering the connections and their importance. In this report, we first
introduce one of the most efficient GPU implementations of Static PageRank,
which recomputes PageRank scores from scratch. It uses a synchronous pull-based
atomics-free PageRank computation, with the low and high in-degree vertices
being partitioned and processed by two separate kernels. Next, we present our
GPU implementation of incrementally expanding (and contracting) Dynamic
Frontier with Pruning (DF-P) PageRank, which processes only a subset of
vertices likely to change ranks. It is based on Static PageRank, and uses an
additional partitioning between low and high out-degree vertices for
incremental expansion of the set of affected vertices with two additional
kernels. On a server with an NVIDIA A100 GPU, our Static PageRank outperforms
Hornet and Gunrock's PageRank implementations by 31x and 5.9x respectively. On
top of the above, DF-P PageRank outperforms Static PageRank by 2.1x on
real-world dynamic graphs, and by 3.1x on large static graphs with random batch
updates.
