Shrivastava, Anshumali2021-11-042022-06-012021-122021-11-01December 2Coleman, Ben. "Cache-Efficient Graph Algorithms for Near Neighbor Search." (2021) Master’s Thesis, Rice University. <a href="https://hdl.handle.net/1911/111627">https://hdl.handle.net/1911/111627</a>.https://hdl.handle.net/1911/111627Graph search has recently become one of the most successful algorithmic trends for near neighbor search. Several of the most popular and empirically successful algorithms are, at their core, a simple walk along a pruned near neighbor graph. Such methods consistently outperform other approaches and are a central component of industrial- scale information retrieval and recommendation systems. However, graph algorithms often suffer from issues related to the memory access pattern of graph traversal. Our measurements show that near neighbor search is no exception to this rule: popular graph indices have poor cache performance and rely on complex heuristics with a large memory cost. To address this problem, we apply graph reordering methods to near neighbor graphs. Graph reordering is a memory layout optimization that groups commonly-accessed nodes together in memory. We present exhaustive experiments that apply several reordering algorithms to the hierarchical navigable small-world (HNSW) graph, and we analyze the algorithms under the ideal cache model. We find that reordering improves the query time by up to 40%. We also demonstrate that popular heuristics can be replaced by simpler alternatives with no performance loss, and we show that the time needed to reorder the graph is negligible compared to the time required to construct the index.application/pdfengCopyright is held by the author, unless otherwise indicated. Permission to reuse, publish, or reproduce the work beyond the bounds of fair use or other exemptions to copyright law must be obtained from the copyright holder.near neighbor searchgraphscachingCache-Efficient Graph Algorithms for Near Neighbor SearchThesis2021-11-04