Parallel multi-layer ghost cell generation for distributed unstructured grids - Patchett, John M.; Nouanesengesy, Boonthanome; Pouderoux, Joachim; Ahrens, James; Hagen, Hans (2017 IEEE 7th Symposium on Large Data Analysis and Visualization (LDAV), 2017)
Ghost cells are important for distributed memory parallel operations that require neighborhood information, and are required for correctness on the boundaries of local data partitions. Ghost cells are one or more layers of grid cells surrounding the external boundary of the local partition, which are owned by other data partitions. They are used by the local partition when neighbor information is required. Finding ghost cells in structured data is trivial and can normally be done by calculating on cell indices. Obtaining ghost cells for unstructured grid data, however, is a nontrivial task. It requires an analysis of the connectivity of the grid in order to find neighbor cells. When the grid is distributed, the operation is further complicated by the need to determine which processes own the neighbor cells, and coordinating communication with them. This is a problem when operating on unstructured grid data sets that do not already have ghost cells. Parallel visualization algorithms will usually assume that a cell does not exist if it is not in the local data partition. Without ghost cells, this leads to operations that need neighborhood information, such as point data interpolated from cell data, being calculated incorrectly at partition boundaries. Production visualization tools generally support the existence of ghost cells, but not their generation, especially for unstructured grids. In the literature, there is no documented algorithm for generating in parallel one or more layers of ghost cells for unstructured grid data which has already been partitioned. We present a new algorithm to compute ghost cells in parallelon distributed unstructured data sets with no global cell or point IDs. Given a partitioned data set without ghost cells, this algorithm is capable of producing any number of layers of ghost cells necessary to support parallel operations. Performance results and timing comparisons to ParaView's D3 filter are presented. A number of optimizations to the algorithm are also presented, with a space and performance analysis showing the benefits and trade-offs enabled with this ghost cell generator. The algorithm is currently available in the Visualization Toolkit (VTK) [11] and ParaView as the vtkPUn-structuredGridGhostCellsGenerator filter.