Parallel geometric algorithms for multi-core computers

Computers with multiple processor cores using shared memory are now ubiquitous. In this paper, we present several parallel geometric algorithms that specifically target this environment, with the goal of exploiting the additional computing power. The algorithms we describe are (a) 2-/3-dimensional spatial sorting of points, as is typically used for preprocessing before using incremental algorithms, (b) d-dimensional axis-aligned box intersection computation, and finally (c) 3D bulk insertion of points into Delaunay triangulations, which can be used for mesh generation algorithms, or simply for constructing 3D Delaunay triangulations. For the latter, we introduce as a foundational element the design of a container data structure that both provides concurrent addition and removal operations and is compact in memory. This makes it especially well-suited for storing large dynamic graphs such as Delaunay triangulations. We show experimental results for these algorithms, using our implementations based on the Computational Geometry Algorithms Library (CGAL). This work is a step towards what we hope will become a parallel mode for CGAL, where algorithms automatically use the available parallel resources without requiring significant user intervention.

[1]  Liping Zhao,et al.  Patterns, symmetry, and symmetry breaking , 2008, CACM.

[2]  Peter Sanders,et al.  MCSTL: the multi-core standard template library , 2007, PPOPP.

[3]  Maurice Herlihy,et al.  The art of multiprocessor programming , 2020, PODC '06.

[4]  Tyng-Ruey Chuang,et al.  Parallel divide‐and‐conquer scheme for 2D Delaunay triangulation , 2006, Concurr. Comput. Pract. Exp..

[5]  Guy E. Blelloch,et al.  Design and Implementation of a Practical Parallel Delaunay Algorithm , 1999, Algorithmica.

[6]  Olivier Devillers,et al.  Walking in a Triangulation , 2002, Int. J. Found. Comput. Sci..

[7]  Johannes Singler,et al.  The libstdc++ parallel mode: software engineering considerations , 2008, ICSE 2008.

[8]  Jonathan Richard Shewchuk,et al.  Tetrahedral mesh generation by Delaunay refinement , 1998, SCG '98.

[9]  Jon Louis Bentley,et al.  Multidimensional binary search trees used for associative searching , 1975, CACM.

[10]  James Reinders,et al.  Intel threading building blocks - outfitting C++ for multi-core processor parallelism , 2007 .

[11]  Nikos Chrisochoides,et al.  Parallel Delaunay mesh generation kernel , 2003 .

[12]  Kenneth L. Clarkson,et al.  Applications of random sampling in computational geometry, II , 1988, SCG '88.

[13]  Jean-Daniel Boissonnat,et al.  Incremental construction of the delaunay triangulation and the delaunay graph in medium dimension , 2009, SCG '09.

[14]  C. Lawson Software for C1 Surface Interpolation , 1977 .

[15]  Herbert Edelsbrunner,et al.  Fast Software for Box Intersections , 2002, Int. J. Comput. Geom. Appl..

[16]  Nikos Chrisochoides,et al.  Task Parallel Implementation of the Bowyer-Watson Algorithm , 1996 .

[17]  Andrey N. Chernikov,et al.  Algorithm, software, and hardware optimizations for Delaunay mesh generation on simultaneous multithreaded architectures , 2009, J. Parallel Distributed Comput..

[18]  Andrey N. Chernikov,et al.  A multigrain Delaunay mesh generation method for multicore SMT-based architectures , 2009, J. Parallel Distributed Comput..

[19]  Jirí Zára,et al.  Parallel Delaunay triangulation in E2 and E3 for computers with shared memory , 2005, Parallel Comput..

[20]  Pierre Alliez,et al.  Computational geometry algorithms library , 2008, SIGGRAPH '08.

[21]  Michael F. Spear,et al.  Delaunay Triangulation with Transactions and Barriers , 2007, 2007 IEEE 10th International Symposium on Workload Characterization.

[22]  Selim G. Akl,et al.  Parallel computational geometry , 1992 .

[23]  Chan-Mo Park,et al.  AN IMPROVED PARALLEL ALGORITHM FOR DELAUNAY TRIANGULATION ON DISTRIBUTED MEMORY PARALLEL COMPUTERS , 2001 .

[24]  Anita Liu Chow Parallel algorithms for geometric problems , 1980 .

[25]  Johannes Singler,et al.  The GNU libstdc++ parallel mode: software engineering considerations , 2008, IWMSE '08.

[26]  Günter Rote,et al.  Incremental constructions con BRIO , 2003, SCG '03.

[27]  Robin Sibson,et al.  Computing Dirichlet Tessellations in the Plane , 1978, Comput. J..

[28]  Jack Snoeyink,et al.  A Comparison of Five Implementations of 3D Delaunay Tessellation , 2005 .

[29]  Raffaele Perego,et al.  Evaluation of parallelization strategies for an incremental Delaunay triangulator in e3 , 1995, Concurr. Pract. Exp..

[30]  Guy E. Blelloch,et al.  Engineering a compact parallel delaunay algorithm in 3D , 2006, SCG '06.

[31]  Leonidas J. Guibas,et al.  Parallel computational geometry , 1988, 26th Annual Symposium on Foundations of Computer Science (sfcs 1985).

[32]  Jaime Peraire,et al.  Parallel unstructured mesh generation , 1996 .

[33]  Larry S. Davis,et al.  Parallel Terrain Triangulation , 1994, Int. J. Geogr. Inf. Sci..

[34]  Mariette Yvinec,et al.  Triangulations in CGAL , 2002, Comput. Geom..

[35]  R. Scopigno,et al.  Parallel 3D Delaunay Triangulation , 1993, Comput. Graph. Forum.

[36]  D. F. Watson Computing the n-Dimensional Delaunay Tesselation with Application to Voronoi Polytopes , 1981, Comput. J..