A single-tree algorithm to compute the Euclidean minimum spanning tree on GPUs

07/01/2022
by   Andrey Prokopenko, et al.
0

Computing the Euclidean minimum spanning tree (EMST) is a computationally demanding step of many algorithms. While work-efficient serial and multithreaded algorithms for computing EMST are known, designing an efficient GPU algorithm is challenging due to a complex branching structure, data dependencies, and load imbalances. In this paper, we propose a single-tree Borůvka-based algorithm for computing EMST on GPUs. We use an efficient nearest neighbor algorithm and reduce the number of the required distance calculations by avoiding traversing subtrees with leaf nodes in the same component. The developed algorithms are implemented in a performance portable way using ArborX, an open-source geometric search library based on the Kokkos framework. We evaluate the proposed algorithm on various 2D and 3D datasets, show and compare it with the current state-of-the-art open-source CPU implementations. We demonstrate 4-24x speedup over the fastest multi-threaded implementation. We prove the portability of our implementation by providing results on a variety of hardware: AMD EPYC 7763, Nvidia A100 and AMD MI250X. We show scalability of the implementation, computing EMST for 37 million 3D cosmological dataset in under a 0.5 second on a single A100 Nvidia GPU.

READ FULL TEXT

page 8

page 10

page 12

research
12/02/2022

Parallelizing Maximal Clique Enumeration on GPUs

We present a GPU solution for exact maximal clique enumeration (MCE) tha...
research
03/09/2021

Fast tree-based algorithms for DBSCAN on GPUs

DBSCAN is a well-known density-based clustering algorithm to discover cl...
research
08/21/2022

Scrooge: A Fast and Memory-Frugal Genomic Sequence Aligner for CPUs, GPUs, and ASICs

Motivation: Pairwise sequence alignment is a very time-consuming step in...
research
08/16/2019

ArborX: A Performance Portable Geometric Search Library

Searching for geometric objects that are close in space is a fundamental...
research
08/16/2019

ArborX: A Performance Portable Search Library

Searching for geometric objects that are close in space is a fundamental...
research
06/15/2019

Accelerating Concurrent Heap on GPUs

Priority queue, often implemented as a heap, is an abstract data type th...
research
12/12/2021

Scalable and Conservative Continuous Collision Detection for GPU

We introduce an algorithm for continuous collision detection (CCD) for l...

Please sign up or login with your details

Forgot password? Click here to reset