A generic parallel Delaunay triangulation scheme by means of zonal partition of points is proposed. For efficient Delaunay triangulation, points are first sorted into cells, each of which is allocated roughly equal number of points. The cells are naturally grouped into zones, in which Delaunay triangulation is constructed by simultaneous point insertion cell by cell within each zone. Tetrahedra at the boundary between zones are created in parallel by adding layers of cells at the boundary of each zone to ensure that circumspheres of boundary tetrahedra contain no points in their interior. Redundant tetrahedra at the boundary between zones can be easily eliminated by individual processors in a completely independent manner by means of the elegant minimum vertex allocation scheme, such that a simplex with k vertices from zones (z1,z2,…,zk) is allocated to zone z=min(z1,z2,…,zk).The parallel 3D Delaunay triangulation algorithm has been coded in Intel FORTRAN VS2010. The parallel zonal insertion on a PC can boost the speed of the single-processor insertion by 4.5 times for the insertion of 50 million randomly generated spatial points in 133s. The scalability of the parallel zonal insertion algorithm has also been tested on a proper multi-core machine with 12 processors running on OpenMP parallel directives with shared memory. Provided the number of zones is an integral multiple of the number of processors used, almost 100% scalability at 90% efficiency was observed for parallel insertion using 2, 4, 6, 8 and 12 processors, and a 10.8 time speed up was recorded in a parallel insertion of 20 million points in 2×2×3=12 zones by 12 processors.
Read full abstract