, Volume 21, Issue 1, pp 151–174 | Cite as

Multi-core parallelism for plane sweep algorithms as a foundation for GIS operations

  • Mark McKenneyEmail author
  • Roger Frye
  • Mathew Dellamano
  • Kevin Anderson
  • Jeremy Harris


The plane sweep algorithm is a foundational algorithm for many geometric and spatial computations; thus, improvements in the algorithm have far reaching effects in many applications. In this paper, we examine the performance of the serial plane sweep algorithm, and introduce a parallelization technique for the algorithm that is suitable to multi-core computers. The parallelization technique is described in detail and shown to be correct. Finally, experiments are performed using multiple data sets on computers with varying numbers of processing cores. We show that our algorithm achieves significant speedups over the serial plane sweep algorithm using a wide range of input parameters; thus, our algorithm achieves good performance without the need to tune the input parameters for specific input cases.


Plane sweep Parallel algorithms Multi-core Spatial decomposition Acceleration 


  1. 1.
    Egenhofer MJ, Herring J (1990) Categorizing binary topological relations between regions, lines, and points in geographic databases, Technical report, National Center for Geographic Information and Analysis, University of California, Santa BarbaraGoogle Scholar
  2. 2.
    Schneider M, Behr T (2006) Topological relationships between complex spatial objects. ACM Trans Database Syst (TODS) 31(1):39–81CrossRefGoogle Scholar
  3. 3.
    Shamos M, Hoey D (1976) Geometric intersection problems. In: Foundations of computer scienceGoogle Scholar
  4. 4.
    Bentley J, Ottmann T (1979) Algorithms for reporting and counting geometric intersections. IEEE Trans Comput C-28:643–647CrossRefGoogle Scholar
  5. 5.
    Nievergelt J, Preparata FP (1982) Plane-sweep algorithms for intersecting geometric figures. Commun ACM 25:739–747CrossRefGoogle Scholar
  6. 6.
    Balaban IJ (1995) An optimal algorithm for finding segments intersections. In: ACM annual symposium on computational geometry, pp 211–219Google Scholar
  7. 7.
    Chazelle B, Edelsbrunner H (1992) An optimal algorithm for intersecting line segments in the plane. J ACM 39(1):1–54. doi: 10.1145/147508.147511
  8. 8.
    Goodrich MT (1989) Intersecting line segments in parallel with an output-sensitive number of processors. In: ACM symposium on parallel algorithms and architectures, pp 127–137. doi: 10.1145/72935.72950
  9. 9.
    McKenney M Parallel plane sweep source code., accessed: 03/07/2016
  10. 10.
    McKenney M Parallel plane sweep source code documentation,, accessed: 03/07/2016
  11. 11.
    Kriegel H-P, Brinkhoff T, Schneider R (1991) Combination of spatial access methods and computational geometry in geographic database systems. In: International symposium on advances in spatial databases, pp 5–21Google Scholar
  12. 12.
    Arge L, Procopiuc O, Ramaswamy S, Suel T, Vitter JS (1998) Scalable sweeping-based spatial join. In: VLDB ’98: Proceedings of the 24rd international conference on very large data bases. Morgan Kaufmann Publishers Inc., San Francisco, pp 570–581Google Scholar
  13. 13.
    Goodrich M, Tsay J, Vengroff D, Vitter J (1993) External-memory computational geometry. In: Foundations of computer science, pp 714–723. doi: 10.1109/SFCS.1993.366816
  14. 14.
    Franklin W, Narayanaswaml C, Kankanhalli M, Sun D, Zho M-C, Wu PY (1989) Uniform grids: a technique for intersection detection on serial and parallel machines. In: Automated cartogrophy, pp 100–109Google Scholar
  15. 15.
    Goodrich M, Ghouse M, Bright J (1990) Generalized sweep methods for parallel computational geometry. In: SPAA ’90: proceedings of the 2nd annual ACM symposium on parallel algorithms and architectures. ACM, New York, pp 280–289. doi: 10.1145/97444.97695
  16. 16.
    McKenney M, McGuire T (2009) A Parallel plane sweep algorithm for multi-core systems. In: ACM SIGSPATIAL international symposium on geographic information systemsGoogle Scholar
  17. 17.
    McKenney M, De Luna G, Hill S, Lowell L (2011) Geospatial overlay computation on the gpu. In: Proceedings of the 19th ACM SIGSPATIAL international conference on advances in geographic information systems, GIS ’11. ACM, New York, pp 473–476. doi: 10.1145/2093973.2094051
  18. 18.
    Audet S, Albertsson C, Murase M, Asahara A (2013) Robust and efficient polygon overlay on parallel stream processors. In: Proceedings of the 21st ACM SIGSPATIAL international conference on advances in geographic information systems, SIGSPATIAL’13. ACM, New York, pp 304–313. doi: 10.1145/2525314.2525352
  19. 19.
    Orenstein J, Manola F (1988) Probe spatial data modeling and query processing in an image database application. IEEE Trans Softw Eng 14(5):611–629. doi: 10.1109/32.6139
  20. 20.
    Patel JM, DeWitt DJ (1996) Partition based spatial-merge join. SIGMOD Rec 25(2):259–270. doi: 10.1145/235968.233338
  21. 21.
    Samet H (1984) The quadtree and related hierarchical data structures. ACM Comput Surv 16(2):187–260. doi: 10.1145/356924.356930
  22. 22.
    Jacox EH, Samet H Spatial join techniques. ACM Trans Database Syst 32 (1). doi: 10.1145/1206049.1206056
  23. 23.
    Arge L, Procopiuc O, Ramaswamy S, Suel T, Vitter JS (1998) Scalable sweeping-based spatial join. In: Proceedings of the 24rd international conference on very large data bases, VLDB ’98. Morgan Kaufmann Publishers Inc., San Francisco, pp 570–581.
  24. 24.
    Eldawy A, Li Y, Mokbel M, Janardan R (2013) Cg hadoop: computational geometry in mapreduce. In: ACM SIGSPATIAL international conference on advances in geographic information systemsGoogle Scholar
  25. 25.
    Eldawy A, Mokbel M (2015) Spatialhadoop: a mapreduce framework for spatial data. In: 2015 IEEE 31st international conference on data engineering (ICDE), pp 1352–1363. doi: 10.1109/ICDE.2015.7113382
  26. 26.
    Lu J, Guting R (2012) Parallel secondo: boosting database engines with hadoop. In: 2012 IEEE 18th international conference on parallel and distributed systems (ICPADS), pp 738–743. doi: 10.1109/ICPADS.2012.119
  27. 27.
    Aji A, Wang F, Vo H, Lee R, Liu Q, Zhang X, Saltz J (2013) Hadoop gis: a high performance spatial data warehousing system over mapreduce. Proc VLDB Endow 6(11):1009–1020. doi: 10.14778/2536222.2536227
  28. 28.
    Cary A, Sun Z, Hristidis V, Rishe N (2009) Experiences on processing spatial data with mapreduce. In: Proceedings of the 21st international conference on scientific and statistical database management, SSDBM, vol 2009. Springer-Verlag, Berlin, Heidelberg, pp 302–319Google Scholar
  29. 29.
    Zhang S, Han J, Liu Z, Wang K, Feng S (2009) Spatial queries evaluation with mapreduce. In: 8th international conference on grid and cooperative computing, 2009. GCC ’09, pp 287–292. doi: 10.1109/GCC.2009.16
  30. 30.
    Liao H, Han J, Fang J (2010) Multi-dimensional index on hadoop distributed file system. In: 2010 IEEE 5th international conference on networking, architecture and storage (NAS), pp 240–249. doi: 10.1109/NAS.2010.44

Copyright information

© Springer Science+Business Media New York 2016

Authors and Affiliations

  • Mark McKenney
    • 1
    Email author
  • Roger Frye
    • 1
  • Mathew Dellamano
    • 1
  • Kevin Anderson
    • 1
  • Jeremy Harris
    • 1
  1. 1.Department of Computer ScienceSouthern Illinois University EdwardsvilleEdwardsvilleUSA

Personalised recommendations