GPU-Based Computing of Repeated Range Queries over Moving Objects

In this paper we investigate the use of GPUs to solve a data-intensive problem that involves huge amounts of moving objects. The scenario which we focus on regards objects that continuously move in a 2D space, where a large percentage of them also issues range queries. The processing of these queries entails a large quantity of objects falling into the range queries to be returned. In order to solve this problem by maintaining a suitable throughput, we partition the time into ticks, and defer the parallel processing of all the objects events (location updates and range queries) occurring in a given tick to the next tick, thus slightly delaying the overall computation. We process in parallel all the events of each tick by adopting an hybrid approach, based on the combined use of CPU and GPU, and show the suitability of the method by discussing performance results. The exploitation of a GPU allow us to achieve a speedup of more than 20× on several datasets with respect to the best sequential algorithm solving the same problem. More importantly, we show that the adoption of new bitmap-based intermediate data structure we propose to avoid memory access contention entails a 10× speedup with respect to naive GPU based solutions.

[1]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[2]  Jon Louis Bentley,et al.  Data Structures for Range Searching , 1979, CSUR.

[3]  Andreas Reuter,et al.  Transaction Processing: Concepts and Techniques , 1992 .

[4]  David A. Patterson,et al.  Computer Architecture - A Quantitative Approach, 5th Edition , 1996 .

[5]  C. Mohan,et al.  Concurrency and recovery in generalized search trees , 1997, SIGMOD '97.

[6]  Thomas Brinkhoff,et al.  A Framework for Generating Network-Based Moving Objects , 2002, GeoInformatica.

[7]  Divyakant Agrawal,et al.  Hardware acceleration for spatial selections and joins , 2003, SIGMOD '03.

[8]  Yao Zhang,et al.  Scan primitives for GPU computing , 2007, GH '07.

[9]  Hyesoon Kim,et al.  An analytical model for a GPU architecture with memory-level and thread-level parallelism awareness , 2009, ISCA '09.

[10]  KimHyesoon,et al.  An analytical model for a GPU architecture with memory-level and thread-level parallelism awareness , 2009 .

[11]  Pradeep Dubey,et al.  Debunking the 100X GPU vs. CPU myth: an evaluation of throughput computing on CPU and GPU , 2010, ISCA.

[12]  KimChangkyu,et al.  Debunking the 100X GPU vs. CPU myth , 2010 .

[13]  Dongseop Kwon,et al.  Parallel Range Query Processing on R-Tree with Graphics Processing Unit , 2011, 2011 IEEE Ninth International Conference on Dependable, Autonomic and Secure Computing.

[14]  Jens Dittrich,et al.  MOVIES: indexing moving objects by shooting index images , 2011, GeoInformatica.

[15]  A. Grimshaw,et al.  High Performance and Scalable Radix Sorting: a Case Study of Implementing Dynamic Parallelism for GPU Computing , 2011, Parallel Process. Lett..

[16]  Christian S. Jensen,et al.  Thread-Level Parallel Indexing of Update Intensive Moving-Object Workloads , 2011, SSTD.

[17]  Martin D. F. Wong,et al.  Parallel implementation of R-trees on the GPU , 2012, 17th Asia and South Pacific Design Automation Conference.

[18]  Christian S. Jensen,et al.  Parallel main-memory indexing for moving-object query and update workloads , 2012, SIGMOD Conference.

[19]  Jianting Zhang,et al.  Speeding up large-scale point-in-polygon test based spatial join on GPUs , 2012, BigSpatial '12.

[20]  Johannes Gehrke,et al.  An Experimental Analysis of Iterated Spatial Joins in Main Memory , 2013, Proc. VLDB Endow..