Abstract

Triangle counting is a cornerstone operation used in large graph analytics. Hash-based algorithms for triangle counting fail to take advantage of available vectorization in modern processors. Linear algebraic-based methods often involve sparse matrix multiplication which is inherently expensive. Nonlinear algebraic methods have a slow implementation and count each triangle multiple times which is then rescaled to obtain the exact triangle count. We propose a fast vector instruction implementation of a set operation-based triangle counting algorithm, which avoids matrix multiplication and finds the exact triangle count directly. Our implementation outperforms reference implementations proposed by the MIT graph challenge and miniTri when tried on about 40 graphs from the SNAP large network dataset, giving a speedup ranging from 41× to more than 1500×. A comparison against existing state-of-the-art techniques gave a speedup of 3× on average. We additionally show that this algorithm can easily be plugged into graph frameworks that either use or can be modified to use compressed sparse row like representation, to give faster compute times. We also propose an optimization to the k truss decomposition algorithm that can be used with the optimized triangle counting algorithm to give better performance.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call