PANDA: Extreme Scale Parallel K-Nearest Neighbor on Distributed Architectures
Citations Over TimeTop 10% of 2016 papers
Abstract
Computing k-Nearest Neighbors (KNN) is one of the core kernels used in many machine learning, data mining and scientific computing applications. Although kd-tree based O(log n) algorithms have been proposed for computing KNN, due to its inherent sequentiality, linear algorithms are being used in practice. This limits the applicability of such methods to millions of data points, with limited scalability for Big Data analytics challenges in the scientific domain. In this paper, we present parallel and highly optimized kd*tree based KNN algorithms (both construction and querying) suitable for distributed architectures. Our algorithm includes novel approaches for pruning search space and improving load balancing and partitioning among nodes and threads. Using TB-sized datasets from three science applications: astrophysics, plasma physics, and particle physics, we show that our implementation can construct kd-tree of 189 billion particles in 48 seconds on utilizing ~50,000 cores. We also demonstrate computation of KNN of 19 billion queries in 12 seconds. We demonstrate almost linear speedup both for shared and distributed memory computers. Our algorithms outperforms earlier implementations by more than order of magnitude, thereby radically improving the applicability of our implementation to state-of-the-art Big Data analytics problems.
Related Papers
- → Another view on parallel speedup(1990)102 cited
- → Toward a better parallel performance metric(1991)97 cited
- → Performance considerations of shared virtual memory machines(1995)24 cited
- → Speedup for Multi-Level Parallel Computing(2012)8 cited
- → Shared virtual memory and generalized speedup(2002)12 cited