Parallel cosine nearest neighbor graph construction

David C. Anastasiu, George Karypis

Research output: Contribution to journalArticlepeer-review

2 Scopus citations


The nearest neighbor graph is an important structure in many data mining methods for clustering, advertising, recommender systems, and outlier detection. Constructing the graph requires computing up to n 2 similarities for a set of n objects. This high complexity has led researchers to seek approximate methods, which find many but not all of the nearest neighbors. In contrast, we leverage shared memory parallelism and recent advances in similarity joins to solve the problem exactly. Our method considers all pairs of potential neighbors but quickly filters pairs that could not be a part of the nearest neighbor graph, based on similarity upper bound estimates. The filtering is data dependent and not easily predicted, which poses load balance challenges in parallel execution. We evaluated our methods on several real-world datasets and found they work up to two orders of magnitude faster than existing methods, display linear strong scaling characteristics, and incur less than 1% load imbalance during filtering.

Original languageEnglish (US)
Pages (from-to)61-82
Number of pages22
JournalJournal of Parallel and Distributed Computing
StatePublished - Jul 2019

Bibliographical note

Publisher Copyright:
© 2017 Elsevier Inc.


  • All-pairs
  • Bounded similarity graph
  • Cosine similarity
  • Nearest neighbors
  • Neighborhood graph construction
  • Shared memory parallel
  • Similarity search


Dive into the research topics of 'Parallel cosine nearest neighbor graph construction'. Together they form a unique fingerprint.

Cite this