  This paper presents some of our findings on the scalability of parallel 3D
mesh generation on distributed memory machines. The primary objective of this
study was to evaluate a distributed memory approach for implementing a 3D
parallel Delaunay-based algorithm that converts images to meshes by leveraging
an efficient shared memory implementation. The secondary objective was to
evaluate the effectiveness of labor (i.e., reduce development time) while
introducing minimal overheads to maintain the parallel efficiency of the
end-product i.e., distributed implementation. The distributed algorithm
utilizes two existing and independently developed parallel Delaunay-based
methods: (1) a fine-grained method that employs multi-threading and speculative
execution on shared memory nodes and (2) a loosely coupled Delaunay-refinement
framework for multi-node platforms. The shared memory implementation uses a
FIFO work-sharing scheme for thread scheduling, while the distributed memory
implementation utilizes the MPI and the Master-Worker (MW) model. The findings
from the specific MPI-MW implementation we tested suggest that the execution on
(1) 40 cores not necessary in the same single node is 2.3 times faster than the
execution on ten cores, (2) the best speedup is 5.4 with 180 cores again the
comparison is with the best performance on ten cores. A closer look at the
performance of distributed memory and shared memory implementation executing on
a single node (40 cores) suggest that the overheads introduced in the MPI-MW
implementation are high and render the MPI-MW implementation 4 times slower
than the shared memory code using the same number of cores. These findings
raise several questions on the potential scalability of a "black box" approach,
i.e., re-using a code designed to execute efficiently on shared memory machines
without considering its potential use in a distributed memory setting.
