  Counting instances of specific subgraphs in a larger graph is an important
problem in graph mining. Finding cliques of size k (k-cliques) is one example
of this NP-hard problem. Different algorithms for clique counting avoid
counting the same clique multiple times by pivoting or ordering the graph.
Ordering-based algorithms include an ordering step to direct the edges in the
input graph, and a counting step, which is dominated by building node or
edge-induced subgraphs. Of the ordering-based algorithms, kClist is the
state-of-the art algorithm designed to work on sparse real-world graphs.
Despite its leading overall performance, kClist's vertex-parallel
implementation does not scale well in practice on graphs with a few million
vertices.
  We present CITRON (Clique counting with Traffic Reducing Optimizations) to
improve the parallel scalability and thus overall performance of clique
counting. We accelerate the ordering phase by abandoning kClist's sequential
core ordering and using a parallelized degree ordering. We accelerate the
counting phase with our reorganized subgraph data structures that reduce memory
traffic to improve scaling bottlenecks. Our sorted, compact neighbor lists
improve locality and communication efficiency which results in near-linear
parallel scaling. CITRON significantly outperforms kClist while counting
moderately sized cliques, and thus increases the size of graph practical for
clique counting.
  We have recently become aware of ArbCount (arXiv:2002.10047), which often
outperforms us. However, we believe that the analysis included in this paper
will be helpful for anyone who wishes to understand the performance
characteristics of k-clique counting.
