  This paper presents a new distributed-memory algorithm called FastSV for
finding connected components in an undirected graph. Our algorithm simplifies
the classic Shiloach-Vishkin algorithm and employs several novel and efficient
hooking strategies for faster convergence. We map different steps of FastSV to
linear algebraic operations and implement them with the help of scalable graph
libraries. FastSV uses sparse operations to avoid redundant work and optimized
MPI communication to avoid bottlenecks. The resultant algorithm shows
high-performance and scalability as it can find the connected components of a
hyperlink graph with over 134B edges in 30 seconds using 262K cores on a Cray
XC40 supercomputer. FastSV outperforms the state-of-the-art algorithm by an
average speedup of 2.21x (max 4.27x) on a variety of real-world graphs.
