  Similarity search in high-dimentional spaces is a pivotal operation found a
variety of database applications. Recently, there has been an increase interest
in similarity search for online content-based multimedia services. Those
services, however, introduce new challenges with respect to the very large
volumes of data that have to be indexed/searched, and the need to minimize
response times observed by the end-users. Additionally, those users dynamically
interact with the systems creating fluctuating query request rates, requiring
the search algorithm to adapt in order to better utilize the underline hardware
to reduce response times. In order to address these challenges, we introduce
hypercurves, a flexible framework for answering approximate k-nearest neighbor
(kNN) queries for very large multimedia databases, aiming at online
content-based multimedia services. Hypercurves executes on hybrid CPU--GPU
environments, and is able to employ those devices cooperatively to support
massive query request rates. In order to keep the response times optimal as the
request rates vary, it employs a novel dynamic scheduler to partition the work
between CPU and GPU. Hypercurves was throughly evaluated using a large database
of multimedia descriptors. Its cooperative CPU--GPU execution achieved
performance improvements of up to 30x when compared to the single CPU-core
version. The dynamic work partition mechanism reduces the observed query
response times in about 50% when compared to the best static CPU--GPU task
partition configuration. In addition, Hypercurves achieves superlinear
scalability in distributed (multi-node) executions, while keeping a high
guarantee of equivalence with its sequential version --- thanks to the proof of
probabilistic equivalence, which supported its aggressive parallelization
design.
