  This paper proposes a general system for compute-intensive graph mining tasks
that find from a big graph all subgraphs that satisfy certain requirements
(e.g., graph matching and community detection). Due to the broad range of
applications of such tasks, many single-threaded algorithms have been proposed.
However, graphs such as online social networks and knowledge graphs often have
billions of vertices and edges, which require distributed processing in order
to scale. Unfortunately, existing distributed graph processing systems such as
Pregel and GraphLab are designed for data-intensive analytics, and are
inefficient for compute-intensive graph mining tasks since computation over any
data is coupled with the data's access that involves network transmission. We
propose a distributed graph mining framework, called G-thinker, which is
designed for compute-intensive graph mining workloads. G-thinker provides an
intuitive graph-exploration API for the convenient implementation of various
graph mining algorithms, and the runtime engine provides efficient execution
with bounded memory consumption, light network communication, and parallelism
between computation and communication. Extensive experiments were conducted,
which demonstrate that G-thinker is orders of magnitude faster than existing
solution, and can scale to graphs that are two orders of magnitude larger given
the same hardware resources.
