/ParlayANN-sigmod24

A library of algorithms for approximate nearest neighbor search in high dimensions, along with a set of useful tools for designing such algorithms.

Primary LanguageC++MIT LicenseMIT

ParlayANN

ParlayANN is a library of approximate nearest neighbor search algorithms, along with a set of useful tools for designing such algorithms. It is written in C++ and uses parallel primitives from ParlayLib. Currently it includes implementations of the ANNS algorithms DiskANN, HNSW, HCNNG, and pyNNDescent.

To install, clone the repo and then initiate the ParlayLib submodule:

git submodule init
git submodule update

See the following documentation for help getting started:

This repository was built for our paper Scaling Graph-Based ANNS Algorithms to Billion-Size Datasets: A Comparative Analysis. If you use this repository for your own work, please cite us:

@article{ANNScaling,
  author       = {Magdalen Dobson and
                  Zheqi Shen and
                  Guy E. Blelloch and
                  Laxman Dhulipala and
                  Yan Gu and
                  Harsha Vardhan Simhadri and
                  Yihan Sun},
  title        = {Scaling Graph-Based {ANNS} Algorithms to Billion-Size Datasets: {A}
                  Comparative Analysis},
  journal      = {CoRR},
  volume       = {abs/2305.04359},
  year         = {2023},
  url          = {https://doi.org/10.48550/arXiv.2305.04359},
  doi          = {10.48550/arXiv.2305.04359},
  eprinttype    = {arXiv},
  eprint       = {2305.04359}
}