Similarity search methods face serious performance issues since similarity functions are rather expensive to compute. Many optimization techniques were designed to reduce the number of similarity computations, when a query is being resolved.
Indexing methods, like pivot table prefiltering, based on the metric properties of feature space, are one of the most popular methods. They can increase the speed of query evaluation even by orders of magnitude.
Another approach is to employ highly parallel architectures like GPUs to accelerate evaluation by unleashing their raw computational power. Unfortunately, resolving the k~nearest neighbors (kNN) queries optimized with metric indexing is a problem that is serial in nature.
In this paper, we explore the perils of kNN parallelization and we propose a new algorithm that basically converts kNN queries into range queries, which are perfectly parallelizable. We have experimentally evaluated all approaches using a~highly parallel environment comprised of multiple GPUs.
The new algorithm demonstrates more than 2x speedup to the naive parallel implementation of kNN queries.