Skip to content

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

License

Notifications You must be signed in to change notification settings

gaurav8297/ParlayANN

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 Analsyis. 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}
}

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 84.0%
  • Python 10.8%
  • C 3.4%
  • Other 1.8%