Improve point data exchange in vtkPConnectivityFilter
The initial merge request supplying a parallel implementation of the vtkConnectivityFilter (!3536 (merged)) contained a basic implementation. Now, improve the point data exchange by eliminating the AllGatherV of points on each processor with a points exchange that uses process bounding box overlaps to determine which processes need to exchange points and RegionIds. See how this is done in vtkPUnstructuredGridGhostCellsGenerator
.
-
Create an MPI subcontroller for just processes that have cells. -
Exchange bounding boxes to discover process neighbors -
Use non-blocking sends and receives to exchange points that fall within each neighbor's bounding box -
Make it work with structured grids -
Use templated functions for different point data types to further reduce communication.
Edited by Cory Quammen