Empirical Inference Conference Paper 2012

Accelerating Nearest Neighbor Search on Manycore Systems

We develop methods for accelerating metric similarity search that are effective on modern hardware. Our algorithms factor into easily parallelizable components, making them simple to deploy and efficient on multicore CPUs and GPUs. Despite the simple structure of our algorithms, their search performance is provably sublinear in the size of the database, with a factor dependent only on its intrinsic dimensionality. We demonstrate that our methods provide substantial speedups on a range of datasets and hardware platforms. In particular, we present results on a 48-core server machine, on graphics hardware, and on a multicore desktop.

Author(s): Cayton, L.
Book Title: Parallel Distributed Processing Symposium (IPDPS), 2012 IEEE 26th International
Pages: 402-413
Year: 2012
Month: May
Day: 0
Bibtex Type: Conference Paper (inproceedings)
DOI: 10.1109/IPDPS.2012.45
Event Name: IPDPS 2012
Event Place: Shanghai, China
State: Published
Electronic Archiving: grant_archive
Links:

BibTex

@inproceedings{Cayton2012,
  title = {Accelerating Nearest Neighbor Search on Manycore Systems},
  booktitle = {Parallel Distributed Processing Symposium (IPDPS), 2012 IEEE 26th International},
  abstract = {We develop methods for accelerating metric similarity search that are effective on modern hardware. Our algorithms factor into easily parallelizable components, making them simple to deploy and efficient on multicore CPUs and GPUs. Despite the simple structure of our algorithms, their search performance is provably sublinear in the size of the database, with a factor dependent only on its intrinsic dimensionality. We demonstrate that our methods provide substantial speedups on a range of datasets and hardware platforms. In particular, we present results on a 48-core server machine, on graphics hardware, and on a multicore desktop. },
  pages = {402-413},
  month = may,
  year = {2012},
  slug = {cayton2012},
  author = {Cayton, L.},
  month_numeric = {5}
}