Robust and efficient polygon overlay on parallel stream processors

The plane sweep algorithm, although widely used in computational geometry, does not parallelize efficiently, rendering it incapable of benefiting from recent trends of multi-core CPUs and general-purpose GPUs. Instead of the plane sweep, some researchers have proposed the uniform grid as a foundation for parallel algorithms of computational geometry, but long-standing robustness and performance issues have deterred its wider adoption, at least in the case of overlay analysis. To remedy that, we have developed previously missing methods to perform snap rounding and compute efficiently the winding number of overlay faces on the uniform grid, and we have implemented them as part of an extensible geometry engine to perform polygon overlay with OpenMP on CPUs and CUDA on GPUs. The overall algorithm works on any polygon configuration, either degenerate, overlapping, self-overlapping, disjoint, or with holes. On typical data, it features time and space complexities of O(N + K) where N is the number of edges and K the number of intersections. Its single-threaded performance not only rivals the plane sweep, it achieves a parallel efficiency of 0.9 on our quad-core CPU, with an additional speedup of over 4 on our GPU, a result that should extrapolate to distributed computing and other geometric operations.

[1]  Mark McKenney,et al.  Geospatial overlay computation on the GPU , 2011, GIS.

[2]  Xi He,et al.  A System for GIS Polygonal Overlay Computation on Linux Cluster - An Experience and Performance Report , 2012, 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum.

[3]  Jonathan Richard Shewchuk,et al.  Adaptive Precision Floating-Point Arithmetic and Fast Robust Geometric Predicates , 1997, Discret. Comput. Geom..

[4]  Mohan S. Kankanhalli,et al.  Calculating the Area of Overlaid Polygons Without Constructing the Overlay , 1994 .

[5]  David Sun,et al.  UNIFORM GRIDS: A TECHNIQUE FOR INTERSECTION DETECTION ON SERIAL AND PARALLEL MACHINES , 2008 .

[6]  Martin Held,et al.  Voronoi diagrams and offset curves of curvilinear polygons , 1998, Comput. Aided Des..

[7]  Mark McKenney,et al.  A parallel plane sweep algorithm for multi-core systems , 2009, GIS.

[8]  Borut Zalik,et al.  An incremental construction algorithm for Delaunay triangulation using the nearest-point paradigm , 2003, Int. J. Geogr. Inf. Sci..

[9]  W. Randolph Franklin,et al.  Boolean Combinations of Polygons in Parallel , 1992, ICPP.

[10]  Michael T. Goodrich,et al.  Generalized sweep methods for parallel computational geometry , 1990, SPAA '90.

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

[12]  M. Carter Computer graphics: Principles and practice , 1997 .

[13]  Mariette Yvinec,et al.  Evaluating signs of determinants using single-precision arithmetic , 2006, Algorithmica.

[14]  Jianting Zhang,et al.  CudaGIS: report on the design and realization of a massive data parallel GIS on GPUs , 2012, IWGS '12.

[15]  Herbert Edelsbrunner,et al.  Simulation of simplicity: a technique to cope with degenerate cases in geometric algorithms , 1988, SCG '88.

[16]  Xiaoye S. Li,et al.  Algorithms for quad-double precision floating point arithmetic , 2000, Proceedings 15th IEEE Symposium on Computer Arithmetic. ARITH-15 2001.

[17]  Ivan J. Balaban,et al.  An optimal algorithm for finding segments intersections , 1995, SCG '95.

[18]  David A. Bader,et al.  GPUMemSort: A High Performance Graphics Co-processors Sorting Algorithm for Large Scale In-Memory Data , 2011 .

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

[20]  Yeh-Ching Chung,et al.  A Parallel Rectangle Intersection Algorithm on GPU+CPU , 2011, 2011 11th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing.

[21]  Mikhail J. Atallah,et al.  Efficient plane sweeping in parallel , 1986, SCG '86.

[22]  John D. Hobby,et al.  Practical segment intersection with finite precision output , 1999, Comput. Geom..

[23]  James C. Miller,et al.  Computer graphics principles and practice, second edition , 1992, Comput. Graph..

[24]  Joel H. Saltz,et al.  Towards building a high performance spatial query system for large scale medical imaging data , 2012, SIGSPATIAL/GIS.

[25]  Thomas Ottmann,et al.  Algorithms for Reporting and Counting Geometric Intersections , 1979, IEEE Transactions on Computers.

[26]  Joel H. Saltz,et al.  Accelerating Pathology Image Data Cross-Comparison on CPU-GPU Hybrid Systems , 2012, Proc. VLDB Endow..

[27]  David A. Bader,et al.  GPUMemSort: A High Performance Graphic Co-processors Sorting Algorithm for Large Scale In-Memory Data , 2010 .