SIMD-Optimized Search Over Sorted Data

Benjamin Mastripolito,Nicholas Koskelo,Dylan Weatherred,David A. Pimentel,Daniel Sheppard,Anna Pietarila Graham,Laura Monroe,Robert Robey
DOI: https://doi.org/10.1115/1.4052728
2021-12-07
Abstract:Applications often require a fast, single-threaded search algorithm over sorted data, typical in table-lookup operations. We explore various search algorithms for a large number of search candidates over a relatively small array of logarithmically-distributed sorted data. These include an innovative hash-based search that takes advantage of floating point representation to bin data by the exponent. Algorithms that can be optimized to take advantage of SIMD vector instructions are of particular interest. We then conduct a case study applying our results and analyzing algorithmic performance with the EOSPAC package. EOSPAC is a table look-up library for manipulation and interpolation of SESAME equation-of-state data. Our investigation results in a couple of algorithms with better performance with a best case 8x speedup over the original EOSPAC Hunt-and-Locate implementation. Our techniques are generalizable to other instances of search algorithms seeking to get a performance boost from vectorization.
Distributed, Parallel, and Cluster Computing,Data Structures and Algorithms
What problem does this paper attempt to address?