  Subgraph counting aims to count occurrences of a template T in a given
network G(V, E). It is a powerful graph analysis tool and has found real-world
applications in diverse domains. Scaling subgraph counting problems is known to
be memory bounded and computationally challenging with exponential complexity.
Although scalable parallel algorithms are known for several graph problems such
as Triangle Counting and PageRank, this is not common for counting complex
subgraphs. Here we address this challenge and study connected acyclic graphs or
trees. We propose a novel vectorized subgraph counting algorithm, named
Subgraph2Vec, as well as both shared memory and distributed implementations: 1)
reducing algorithmic complexity by minimizing neighbor traversal; 2) achieving
a highly-vectorized implementation upon linear algebra kernels to significantly
improve performance and hardware utilization. 3) Subgraph2Vec improves the
overall performance over the state-of-the-art work by orders of magnitude and
up to 660x on a single node. 4) Subgraph2Vec in distributed mode can scale up
the template size to 20 and maintain good strong scalability. 5) enabling
portability to both CPU and GPU.
