------------------------------------------------------------------------------
| 203 | |
| 204 | //------------------------------------------------------------------------------ |
| 205 | void vtkDIYUtilities::AllReduce(diy::mpi::communicator& comm, vtkBoundingBox& bbox) |
| 206 | { |
| 207 | if (comm.size() > 1) |
| 208 | { |
| 209 | std::vector<double> local_minpoint(3), local_maxpoint(3); |
| 210 | bbox.GetMinPoint(local_minpoint.data()); |
| 211 | bbox.GetMaxPoint(local_maxpoint.data()); |
| 212 | |
| 213 | std::vector<double> global_minpoint(3), global_maxpoint(3); |
| 214 | diy::mpi::all_reduce(comm, local_minpoint, global_minpoint, diy::mpi::minimum<float>()); |
| 215 | diy::mpi::all_reduce(comm, local_maxpoint, global_maxpoint, diy::mpi::maximum<float>()); |
| 216 | |
| 217 | bbox.SetMinPoint(global_minpoint.data()); |
| 218 | bbox.SetMaxPoint(global_maxpoint.data()); |
| 219 | } |
| 220 | } |
| 221 | |
| 222 | //------------------------------------------------------------------------------ |
| 223 | void vtkDIYUtilities::Save(diy::BinaryBuffer& bb, vtkDataArray* array) |