Abstract
Range searching is a primal problem in computational geometry with applications to database systems, mobile computing, geographical information systems, and the like. Defined simply, the problem is to preprocess a given a set of points in a d-dimensional space so that the points that lie inside an orthogonal query rectangle can be efficiently reported.
Many practical applications of range trees require one to process a massive amount of points and a massive number of queries. In this context, we propose an efficient parallel implementation of range trees on manycore architectures such as GPUs. We extend our implementation to query processing. While queries can be batched together to exploit inter-query parallelism, we also utilize intra-query parallelism. This inter- and intra-query parallelism greatly reduces the per query latency thereby increasing the throughput. On an input of 1 M points in a 2-dimensional space, our implementation on a single Nvidia GTX 580 GPU for constructing a range tree shows an improvement of 12X over a 12-threaded CPU implementation. We also achieve an average throughput of 10 M queries per second for answering 4 M queries on a range tree containing 1 M points on a Nvidia GTX 580 GPU. We extend our implementation to an application where we seek to report the set of maximal points in a given orthogonal query rectangle.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Agarwal, P.K., Erickson, J.: Geometric range searching and its relatives. In: Advances in Discrete and Computational Geometry, vol. 223, pp. 1–56
Bell, N., Garland, M.: Efficient sparse matrix-vector multiplication on cuda. Technical report, NVIDIA Technical Report NVR-2008-004 (2008)
Coombe, G., Harris, M.J., Lastra, A.: Radiosity on graphics hardware. In: Proceedings of the 2004 Conference on Graphics Interface, pp. 161–168 (2004)
Das, A.S., Gupta, P., Srinathan, K.: On Finding Skyline Points for Range Queries in Plane. In: CCCG (2011)
Fix, J., Wilkes, A., Skadron, K.: Accelerating Braided B+ Tree Searches on a GPU with CUD. In: Proc. ISCA Workshops (2011)
Foley, T., Sugerman, J.: Kd-tree acceleration structures for a gpu raytracer. In: Proc. Graphics Hardware, pp. 15–22 (2005)
Jaja, J.: An Introduction To Parallel Algorithms. Addison-Wesley (2004)
Kalavagattu, A.K., Agarwal, J., Das, A.S., Kothapalli, K.: Counting Range Maxima Points in Plane. In: Smyth, B. (ed.) IWOCA 2012. LNCS, vol. 7643, pp. 263–273. Springer, Heidelberg (2012)
Kim, J., Kim, S.-G., Nam, B.: Parallel multi-dimensional range query processing with R-trees on GPU. J. Par. Dist. Comp. 73(8), 1195–1207 (2013)
Lefohn, A.E., Sengupta, S., Kniss, J., Strzodka, R., Owens, J.D.: Glift: Generic, Efficient, Random-access GPU Data Structures. ACM Trans. Graph. 25(1), 60–99 (2006)
Leischner, N., Osipov, V., Sanders, P.: GPU sample sort. In: IEEE International Parallel and Distributed Processing Symposium, IPDPS (2010)
NVidia Corporation, Cuda: Compute Unified Device Architecture programming guide. Technical report, Nvidia. Tech. Rep. (2007)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Maramreddy, M.K., Kothapalli, K. (2014). GPU Accelerated Range Trees with Applications. In: Silva, F., Dutra, I., Santos Costa, V. (eds) Euro-Par 2014 Parallel Processing. Euro-Par 2014. Lecture Notes in Computer Science, vol 8632. Springer, Cham. https://doi.org/10.1007/978-3-319-09873-9_62
Download citation
DOI: https://doi.org/10.1007/978-3-319-09873-9_62
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-09872-2
Online ISBN: 978-3-319-09873-9
eBook Packages: Computer ScienceComputer Science (R0)