Efficient plane sweeping in parallel
SCG '86 Proceedings of the second annual symposium on Computational geometry
Simulation of simplicity: a technique to cope with degenerate cases in geometric algorithms
ACM Transactions on Graphics (TOG)
Generalized sweep methods for parallel computational geometry
SPAA '90 Proceedings of the second annual ACM symposium on Parallel algorithms and architectures
Computer graphics (2nd ed. in C): principles and practice
Computer graphics (2nd ed. in C): principles and practice
An optimal algorithm for finding segments intersections
Proceedings of the eleventh annual symposium on Computational geometry
Practical segment intersection with finite precision output
Computational Geometry: Theory and Applications
Algorithms for Quad-Double Precision Floating Point Arithmetic
ARITH '01 Proceedings of the 15th IEEE Symposium on Computer Arithmetic
Algorithms for Reporting and Counting Geometric Intersections
IEEE Transactions on Computers
A parallel plane sweep algorithm for multi-core systems
Proceedings of the 17th ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems
Debunking the 100X GPU vs. CPU myth: an evaluation of throughput computing on CPU and GPU
Proceedings of the 37th annual international symposium on Computer architecture
A Parallel Rectangle Intersection Algorithm on GPU+CPU
CCGRID '11 Proceedings of the 2011 11th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing
Geospatial overlay computation on the GPU
Proceedings of the 19th ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems
Accelerating pathology image data cross-comparison on CPU-GPU hybrid systems
Proceedings of the VLDB Endowment
IPDPSW '12 Proceedings of the 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum
Towards building a high performance spatial query system for large scale medical imaging data
Proceedings of the 20th International Conference on Advances in Geographic Information Systems
CudaGIS: report on the design and realization of a massive data parallel GIS on GPUs
Proceedings of the Third ACM SIGSPATIAL International Workshop on GeoStreaming
Hi-index | 0.00 |
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.