Accelerating the similarity self-join using the GPU

The self-join finds all objects in a dataset within a threshold of each other defined by a similarity metric. As such, the self-join is a fundamental building block for the field of databases and data mining. In low dimensionality, there are several challenges associated with efficiently computing t...

Full description

Saved in:
Bibliographic Details
Published in:Journal of parallel and distributed computing Vol. 133; pp. 107 - 123
Main Authors: Gowanlock, Michael, Karsin, Ben
Format: Journal Article
Language:English
Published: Elsevier Inc 01.11.2019
Subjects:
ISSN:0743-7315, 1096-0848
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:The self-join finds all objects in a dataset within a threshold of each other defined by a similarity metric. As such, the self-join is a fundamental building block for the field of databases and data mining. In low dimensionality, there are several challenges associated with efficiently computing the self-join on the graphics processing unit (GPU). Low dimensional data results in higher data densities, causing a significant number of distance calculations and a large result set, and as dimensionality increases, index searches become increasingly exhaustive. We propose several techniques to optimize the self-join using the GPU that include a GPU-efficient index that employs a bounded search, a batching scheme to accommodate large result sets, and duplicate search removal with low overhead. Furthermore, we propose a performance model that reveals bottlenecks related to the result set size and enables us to choose a batch size that mitigates two sources of performance degradation. Our approach outperforms the state-of-the-art on most scenarios. •We advance a GPU-accelerated self-join technique that is efficient on many scenarios.•We leverage an index designed for the GPU for efficient range queries.•We present a duplicate search and distance calculation removal strategy.•We leverage a performance model that reveals key sources of overhead.•The performance model can be used to optimize parameters to improve performance.
ISSN:0743-7315
1096-0848
DOI:10.1016/j.jpdc.2019.06.005