----------------------------------------------------------------------------
| 252 | |
| 253 | //---------------------------------------------------------------------------- |
| 254 | int TestPartitionBalancer(int argc, char* argv[]) |
| 255 | { |
| 256 | int retVal = EXIT_SUCCESS; |
| 257 | |
| 258 | vtkNew<vtkMPIController> controller; |
| 259 | |
| 260 | controller->Initialize(&argc, &argv); |
| 261 | vtkMultiProcessController::SetGlobalController(controller); |
| 262 | |
| 263 | int rank = controller->GetLocalProcessId(); |
| 264 | |
| 265 | vtkNew<vtkPartitionedDataSetCollection> pdsc; |
| 266 | pdsc->SetNumberOfPartitionedDataSets(2); |
| 267 | |
| 268 | // rank 0: PDC [ PD (DS0, DS1, DS2) ] [PD (nullptr, DS100) ] |
| 269 | // rank 1: PDC [ PD (DS3, nullptr, DS4) ] [PD () ] |
| 270 | |
| 271 | if (rank == 0) |
| 272 | { |
| 273 | vtkNew<vtkPartitionedDataSet> pds0; |
| 274 | pds0->SetNumberOfPartitions(3); |
| 275 | pds0->SetPartition(0, GenerateDataSet(0, 0)); |
| 276 | pds0->SetPartition(1, GenerateDataSet(0, 1)); |
| 277 | pds0->SetPartition(2, GenerateDataSet(0, 2)); |
| 278 | pdsc->SetPartitionedDataSet(0, pds0); |
| 279 | |
| 280 | vtkNew<vtkPartitionedDataSet> pds1; |
| 281 | pds1->SetNumberOfPartitions(2); |
| 282 | pds1->SetPartition(0, nullptr); |
| 283 | pds1->SetPartition(0, GenerateDataSet(0, 3)); |
| 284 | pdsc->SetPartitionedDataSet(1, pds1); |
| 285 | } |
| 286 | else if (rank == 1) |
| 287 | { |
| 288 | vtkNew<vtkPartitionedDataSet> pds0; |
| 289 | pds0->SetNumberOfPartitions(3); |
| 290 | pds0->SetPartition(0, GenerateDataSet(1, 0)); |
| 291 | pds0->SetPartition(1, nullptr); |
| 292 | pds0->SetPartition(2, GenerateDataSet(1, 1)); |
| 293 | pdsc->SetPartitionedDataSet(0, pds0); |
| 294 | |
| 295 | pdsc->SetPartitionedDataSet(1, vtkNew<vtkPartitionedDataSet>()); |
| 296 | } |
| 297 | |
| 298 | vtkNew<vtkPartitionBalancer> balancer; |
| 299 | balancer->SetInputDataObject(pdsc); |
| 300 | balancer->SetController(controller); |
| 301 | |
| 302 | if (rank == 0) |
| 303 | { |
| 304 | vtkLog(INFO, "Testing vtkPartitionBalancer for vtkPartitionedDataSetCollection input"); |
| 305 | } |
| 306 | |
| 307 | if (rank == 0) |
| 308 | { |
| 309 | vtkLog(INFO, "*** Expand mode"); |
| 310 | } |
| 311 |
nothing calls this directly
no test coverage detected