VTK  9.7.1
vtkCommunicator.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
23 #ifndef vtkCommunicator_h
24 #define vtkCommunicator_h
25 
26 #include "vtkObject.h"
27 #include "vtkParallelCoreModule.h" // For export macro
28 #include "vtkSmartPointer.h" // needed for vtkSmartPointer.
29 #include <vector> // needed for std::vector
30 
31 VTK_ABI_NAMESPACE_BEGIN
32 class vtkBoundingBox;
33 class vtkCharArray;
34 class vtkDataArray;
35 class vtkDataObject;
36 class vtkDataSet;
37 class vtkIdTypeArray;
38 class vtkImageData;
41 
42 class VTKPARALLELCORE_EXPORT vtkCommunicator : public vtkObject
43 {
44 
45 public:
46  vtkTypeMacro(vtkCommunicator, vtkObject);
47  void PrintSelf(ostream& os, vtkIndent indent) override;
48 
50 
55  virtual void SetNumberOfProcesses(int num);
56  vtkGetMacro(NumberOfProcesses, int);
58 
60 
63  vtkGetMacro(LocalProcessId, int);
65 
66  enum Tags
67  {
68  BROADCAST_TAG = 10,
69  GATHER_TAG = 11,
70  GATHERV_TAG = 12,
71  SCATTER_TAG = 13,
72  SCATTERV_TAG = 14,
73  REDUCE_TAG = 15,
74  BARRIER_TAG = 16,
75  ALL_TO_ALLV_TAG = 17
76  };
77 
79  {
89  BITWISE_XOR_OP
90  };
91 
96  class Operation
97  {
98  public:
109  virtual void Function(const void* A, void* B, vtkIdType length, int datatype) = 0;
110 
115  virtual int Commutative() = 0;
116 
117  virtual ~Operation() = default;
118  };
119 
125  int Send(vtkDataObject* data, int remoteHandle, int tag);
126 
132  int Send(vtkDataArray* data, int remoteHandle, int tag);
133 
140  virtual int SendVoidArray(
141  const void* data, vtkIdType length, int type, int remoteHandle, int tag) = 0;
142 
144 
147  int Send(const int* data, vtkIdType length, int remoteHandle, int tag)
148  {
149  return this->SendVoidArray(data, length, VTK_INT, remoteHandle, tag);
150  }
151  int Send(const unsigned int* data, vtkIdType length, int remoteHandle, int tag)
152  {
153  return this->SendVoidArray(data, length, VTK_INT, remoteHandle, tag);
154  }
155  int Send(const short* data, vtkIdType length, int remoteHandle, int tag)
156  {
157  return this->SendVoidArray(data, length, VTK_SHORT, remoteHandle, tag);
158  }
159  int Send(const unsigned short* data, vtkIdType length, int remoteHandle, int tag)
160  {
161  return this->SendVoidArray(data, length, VTK_UNSIGNED_SHORT, remoteHandle, tag);
162  }
163  int Send(const long* data, vtkIdType length, int remoteHandle, int tag)
164  {
165  return this->SendVoidArray(data, length, VTK_LONG, remoteHandle, tag);
166  }
167  int Send(const unsigned long* data, vtkIdType length, int remoteHandle, int tag)
168  {
169  return this->SendVoidArray(data, length, VTK_UNSIGNED_LONG, remoteHandle, tag);
170  }
171  int Send(const unsigned char* data, vtkIdType length, int remoteHandle, int tag)
172  {
173  return this->SendVoidArray(data, length, VTK_UNSIGNED_CHAR, remoteHandle, tag);
174  }
175  int Send(const char* data, vtkIdType length, int remoteHandle, int tag)
176  {
177  return this->SendVoidArray(data, length, VTK_CHAR, remoteHandle, tag);
178  }
179  int Send(const signed char* data, vtkIdType length, int remoteHandle, int tag)
180  {
181  return this->SendVoidArray(data, length, VTK_SIGNED_CHAR, remoteHandle, tag);
182  }
183  int Send(const float* data, vtkIdType length, int remoteHandle, int tag)
184  {
185  return this->SendVoidArray(data, length, VTK_FLOAT, remoteHandle, tag);
186  }
187  int Send(const double* data, vtkIdType length, int remoteHandle, int tag)
188  {
189  return this->SendVoidArray(data, length, VTK_DOUBLE, remoteHandle, tag);
190  }
191  int Send(const long long* data, vtkIdType length, int remoteHandle, int tag)
192  {
193  return this->SendVoidArray(data, length, VTK_LONG_LONG, remoteHandle, tag);
194  }
195  int Send(const unsigned long long* data, vtkIdType length, int remoteHandle, int tag)
196  {
197  return this->SendVoidArray(data, length, VTK_UNSIGNED_LONG_LONG, remoteHandle, tag);
198  }
200 
201  int Send(const vtkMultiProcessStream& stream, int remoteId, int tag);
202 
207  int Receive(vtkDataObject* data, int remoteHandle, int tag);
208 
213  vtkDataObject* ReceiveDataObject(int remoteHandle, int tag);
214 
219  int Receive(vtkDataArray* data, int remoteHandle, int tag);
220 
231  virtual int ReceiveVoidArray(
232  void* data, vtkIdType maxlength, int type, int remoteHandle, int tag) = 0;
233 
235 
238  int Receive(int* data, vtkIdType maxlength, int remoteHandle, int tag)
239  {
240  return this->ReceiveVoidArray(data, maxlength, VTK_INT, remoteHandle, tag);
241  }
242  int Receive(unsigned int* data, vtkIdType maxlength, int remoteHandle, int tag)
243  {
244  return this->ReceiveVoidArray(data, maxlength, VTK_INT, remoteHandle, tag);
245  }
246  int Receive(short* data, vtkIdType maxlength, int remoteHandle, int tag)
247  {
248  return this->ReceiveVoidArray(data, maxlength, VTK_SHORT, remoteHandle, tag);
249  }
250  int Receive(unsigned short* data, vtkIdType maxlength, int remoteHandle, int tag)
251  {
252  return this->ReceiveVoidArray(data, maxlength, VTK_UNSIGNED_SHORT, remoteHandle, tag);
253  }
254  int Receive(long* data, vtkIdType maxlength, int remoteHandle, int tag)
255  {
256  return this->ReceiveVoidArray(data, maxlength, VTK_LONG, remoteHandle, tag);
257  }
258  int Receive(unsigned long* data, vtkIdType maxlength, int remoteHandle, int tag)
259  {
260  return this->ReceiveVoidArray(data, maxlength, VTK_UNSIGNED_LONG, remoteHandle, tag);
261  }
262  int Receive(unsigned char* data, vtkIdType maxlength, int remoteHandle, int tag)
263  {
264  return this->ReceiveVoidArray(data, maxlength, VTK_UNSIGNED_CHAR, remoteHandle, tag);
265  }
266  int Receive(char* data, vtkIdType maxlength, int remoteHandle, int tag)
267  {
268  return this->ReceiveVoidArray(data, maxlength, VTK_CHAR, remoteHandle, tag);
269  }
270  int Receive(signed char* data, vtkIdType maxlength, int remoteHandle, int tag)
271  {
272  return this->ReceiveVoidArray(data, maxlength, VTK_SIGNED_CHAR, remoteHandle, tag);
273  }
274  int Receive(float* data, vtkIdType maxlength, int remoteHandle, int tag)
275  {
276  return this->ReceiveVoidArray(data, maxlength, VTK_FLOAT, remoteHandle, tag);
277  }
278  int Receive(double* data, vtkIdType maxlength, int remoteHandle, int tag)
279  {
280  return this->ReceiveVoidArray(data, maxlength, VTK_DOUBLE, remoteHandle, tag);
281  }
282  int Receive(long long* data, vtkIdType maxlength, int remoteHandle, int tag)
283  {
284  return this->ReceiveVoidArray(data, maxlength, VTK_LONG_LONG, remoteHandle, tag);
285  }
286  int Receive(unsigned long long* data, vtkIdType maxlength, int remoteHandle, int tag)
287  {
288  return this->ReceiveVoidArray(data, maxlength, VTK_UNSIGNED_LONG_LONG, remoteHandle, tag);
289  }
291 
292  int Receive(vtkMultiProcessStream& stream, int remoteId, int tag);
293 
295 
303  vtkGetMacro(Count, vtkIdType);
305 
306  //---------------------- Collective Operations ----------------------
307 
311  virtual int AllToAllVVoidArray(const void* sendBuffer, const int* sendCounts,
312  const int* sendOffsets, void* recvBuffer, const int* recvCounts, const int* recvOffsets,
313  int type);
314 
319  virtual void Barrier();
320 
322 
327  int Broadcast(int* data, vtkIdType length, int srcProcessId)
328  {
329  return this->BroadcastVoidArray(data, length, VTK_INT, srcProcessId);
330  }
331  int Broadcast(unsigned int* data, vtkIdType length, int srcProcessId)
332  {
333  return this->BroadcastVoidArray(data, length, VTK_UNSIGNED_INT, srcProcessId);
334  }
335  int Broadcast(short* data, vtkIdType length, int srcProcessId)
336  {
337  return this->BroadcastVoidArray(data, length, VTK_SHORT, srcProcessId);
338  }
339  int Broadcast(unsigned short* data, vtkIdType length, int srcProcessId)
340  {
341  return this->BroadcastVoidArray(data, length, VTK_UNSIGNED_SHORT, srcProcessId);
342  }
343  int Broadcast(long* data, vtkIdType length, int srcProcessId)
344  {
345  return this->BroadcastVoidArray(data, length, VTK_LONG, srcProcessId);
346  }
347  int Broadcast(unsigned long* data, vtkIdType length, int srcProcessId)
348  {
349  return this->BroadcastVoidArray(data, length, VTK_UNSIGNED_LONG, srcProcessId);
350  }
351  int Broadcast(unsigned char* data, vtkIdType length, int srcProcessId)
352  {
353  return this->BroadcastVoidArray(data, length, VTK_UNSIGNED_CHAR, srcProcessId);
354  }
355  int Broadcast(char* data, vtkIdType length, int srcProcessId)
356  {
357  return this->BroadcastVoidArray(data, length, VTK_CHAR, srcProcessId);
358  }
359  int Broadcast(signed char* data, vtkIdType length, int srcProcessId)
360  {
361  return this->BroadcastVoidArray(data, length, VTK_SIGNED_CHAR, srcProcessId);
362  }
363  int Broadcast(float* data, vtkIdType length, int srcProcessId)
364  {
365  return this->BroadcastVoidArray(data, length, VTK_FLOAT, srcProcessId);
366  }
367  int Broadcast(double* data, vtkIdType length, int srcProcessId)
368  {
369  return this->BroadcastVoidArray(data, length, VTK_DOUBLE, srcProcessId);
370  }
371  int Broadcast(long long* data, vtkIdType length, int srcProcessId)
372  {
373  return this->BroadcastVoidArray(data, length, VTK_LONG_LONG, srcProcessId);
374  }
375  int Broadcast(unsigned long long* data, vtkIdType length, int srcProcessId)
376  {
377  return this->BroadcastVoidArray(data, length, VTK_UNSIGNED_LONG_LONG, srcProcessId);
378  }
379  int Broadcast(vtkDataObject* data, int srcProcessId);
380  int Broadcast(vtkDataArray* data, int srcProcessId);
382 
383  int Broadcast(vtkMultiProcessStream& stream, int srcProcessId);
384 
386 
395  int Gather(const int* sendBuffer, int* recvBuffer, vtkIdType length, int destProcessId)
396  {
397  return this->GatherVoidArray(sendBuffer, recvBuffer, length, VTK_INT, destProcessId);
398  }
399  int Gather(
400  const unsigned int* sendBuffer, unsigned int* recvBuffer, vtkIdType length, int destProcessId)
401  {
402  return this->GatherVoidArray(sendBuffer, recvBuffer, length, VTK_UNSIGNED_INT, destProcessId);
403  }
404  int Gather(const short* sendBuffer, short* recvBuffer, vtkIdType length, int destProcessId)
405  {
406  return this->GatherVoidArray(sendBuffer, recvBuffer, length, VTK_SHORT, destProcessId);
407  }
408  int Gather(const unsigned short* sendBuffer, unsigned short* recvBuffer, vtkIdType length,
409  int destProcessId)
410  {
411  return this->GatherVoidArray(sendBuffer, recvBuffer, length, VTK_UNSIGNED_SHORT, destProcessId);
412  }
413  int Gather(const long* sendBuffer, long* recvBuffer, vtkIdType length, int destProcessId)
414  {
415  return this->GatherVoidArray(sendBuffer, recvBuffer, length, VTK_LONG, destProcessId);
416  }
417  int Gather(
418  const unsigned long* sendBuffer, unsigned long* recvBuffer, vtkIdType length, int destProcessId)
419  {
420  return this->GatherVoidArray(sendBuffer, recvBuffer, length, VTK_UNSIGNED_LONG, destProcessId);
421  }
422  int Gather(
423  const unsigned char* sendBuffer, unsigned char* recvBuffer, vtkIdType length, int destProcessId)
424  {
425  return this->GatherVoidArray(sendBuffer, recvBuffer, length, VTK_UNSIGNED_CHAR, destProcessId);
426  }
427  int Gather(const char* sendBuffer, char* recvBuffer, vtkIdType length, int destProcessId)
428  {
429  return this->GatherVoidArray(sendBuffer, recvBuffer, length, VTK_CHAR, destProcessId);
430  }
431  int Gather(
432  const signed char* sendBuffer, signed char* recvBuffer, vtkIdType length, int destProcessId)
433  {
434  return this->GatherVoidArray(sendBuffer, recvBuffer, length, VTK_SIGNED_CHAR, destProcessId);
435  }
436  int Gather(const float* sendBuffer, float* recvBuffer, vtkIdType length, int destProcessId)
437  {
438  return this->GatherVoidArray(sendBuffer, recvBuffer, length, VTK_FLOAT, destProcessId);
439  }
440  int Gather(const double* sendBuffer, double* recvBuffer, vtkIdType length, int destProcessId)
441  {
442  return this->GatherVoidArray(sendBuffer, recvBuffer, length, VTK_DOUBLE, destProcessId);
443  }
444  int Gather(
445  const long long* sendBuffer, long long* recvBuffer, vtkIdType length, int destProcessId)
446  {
447  return this->GatherVoidArray(sendBuffer, recvBuffer, length, VTK_LONG_LONG, destProcessId);
448  }
449  int Gather(const unsigned long long* sendBuffer, unsigned long long* recvBuffer, vtkIdType length,
450  int destProcessId)
451  {
452  return this->GatherVoidArray(
453  sendBuffer, recvBuffer, length, VTK_UNSIGNED_LONG_LONG, destProcessId);
454  }
455  int Gather(vtkDataArray* sendBuffer, vtkDataArray* recvBuffer, int destProcessId);
457 
470  int Gather(vtkDataObject* sendBuffer, std::vector<vtkSmartPointer<vtkDataObject>>& recvBuffer,
471  int destProcessId);
472 
482  int Gather(const vtkMultiProcessStream& sendBuffer,
483  std::vector<vtkMultiProcessStream>& recvBuffer, int destProcessId);
484 
486 
497  int GatherV(const int* sendBuffer, int* recvBuffer, vtkIdType sendLength, vtkIdType* recvLengths,
498  vtkIdType* offsets, int destProcessId)
499  {
500  return this->GatherVVoidArray(
501  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_INT, destProcessId);
502  }
503  int GatherV(const unsigned int* sendBuffer, unsigned int* recvBuffer, vtkIdType sendLength,
504  vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
505  {
506  return this->GatherVVoidArray(
507  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_UNSIGNED_INT, destProcessId);
508  }
509  int GatherV(const short* sendBuffer, short* recvBuffer, vtkIdType sendLength,
510  vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
511  {
512  return this->GatherVVoidArray(
513  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_SHORT, destProcessId);
514  }
515  int GatherV(const unsigned short* sendBuffer, unsigned short* recvBuffer, vtkIdType sendLength,
516  vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
517  {
518  return this->GatherVVoidArray(
519  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_UNSIGNED_SHORT, destProcessId);
520  }
521  int GatherV(const long* sendBuffer, long* recvBuffer, vtkIdType sendLength,
522  vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
523  {
524  return this->GatherVVoidArray(
525  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_LONG, destProcessId);
526  }
527  int GatherV(const unsigned long* sendBuffer, unsigned long* recvBuffer, vtkIdType sendLength,
528  vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
529  {
530  return this->GatherVVoidArray(
531  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_UNSIGNED_LONG, destProcessId);
532  }
533  int GatherV(const unsigned char* sendBuffer, unsigned char* recvBuffer, vtkIdType sendLength,
534  vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
535  {
536  return this->GatherVVoidArray(
537  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_UNSIGNED_CHAR, destProcessId);
538  }
539  int GatherV(const char* sendBuffer, char* recvBuffer, vtkIdType sendLength,
540  vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
541  {
542  return this->GatherVVoidArray(
543  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_CHAR, destProcessId);
544  }
545  int GatherV(const signed char* sendBuffer, signed char* recvBuffer, vtkIdType sendLength,
546  vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
547  {
548  return this->GatherVVoidArray(
549  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_SIGNED_CHAR, destProcessId);
550  }
551  int GatherV(const float* sendBuffer, float* recvBuffer, vtkIdType sendLength,
552  vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
553  {
554  return this->GatherVVoidArray(
555  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_FLOAT, destProcessId);
556  }
557  int GatherV(const double* sendBuffer, double* recvBuffer, vtkIdType sendLength,
558  vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
559  {
560  return this->GatherVVoidArray(
561  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_DOUBLE, destProcessId);
562  }
563  int GatherV(const long long* sendBuffer, long long* recvBuffer, vtkIdType sendLength,
564  vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
565  {
566  return this->GatherVVoidArray(
567  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_LONG_LONG, destProcessId);
568  }
569  int GatherV(const unsigned long long* sendBuffer, unsigned long long* recvBuffer,
570  vtkIdType sendLength, vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
571  {
572  return this->GatherVVoidArray(sendBuffer, recvBuffer, sendLength, recvLengths, offsets,
573  VTK_UNSIGNED_LONG_LONG, destProcessId);
574  }
577 
583  int GatherV(vtkDataArray* sendBuffer, vtkDataArray* recvBuffer, vtkIdTypeArray* recvLengths,
584  vtkIdTypeArray* offsets, int destProcessId);
589  int GatherV(vtkDataArray* sendBuffer, vtkDataArray* recvBuffer, int destProcessId);
595  int GatherV(vtkDataArray* sendBuffer, vtkDataArray* recvBuffer, vtkIdType* recvLengths,
596  vtkIdType* offsets, int destProcessId);
597 
599 
607  int GatherV(vtkDataObject* sendData, vtkSmartPointer<vtkDataObject>* recvData, int destProcessId);
608 
610 
617  int Scatter(const int* sendBuffer, int* recvBuffer, vtkIdType length, int srcProcessId)
618  {
619  return this->ScatterVoidArray(sendBuffer, recvBuffer, length, VTK_INT, srcProcessId);
620  }
621  int Scatter(
622  const unsigned int* sendBuffer, unsigned int* recvBuffer, vtkIdType length, int srcProcessId)
623  {
624  return this->ScatterVoidArray(sendBuffer, recvBuffer, length, VTK_UNSIGNED_INT, srcProcessId);
625  }
626  int Scatter(const short* sendBuffer, short* recvBuffer, vtkIdType length, int srcProcessId)
627  {
628  return this->ScatterVoidArray(sendBuffer, recvBuffer, length, VTK_SHORT, srcProcessId);
629  }
630  int Scatter(const unsigned short* sendBuffer, unsigned short* recvBuffer, vtkIdType length,
631  int srcProcessId)
632  {
633  return this->ScatterVoidArray(sendBuffer, recvBuffer, length, VTK_UNSIGNED_SHORT, srcProcessId);
634  }
635  int Scatter(const long* sendBuffer, long* recvBuffer, vtkIdType length, int srcProcessId)
636  {
637  return this->ScatterVoidArray(sendBuffer, recvBuffer, length, VTK_INT, srcProcessId);
638  }
639  int Scatter(
640  const unsigned long* sendBuffer, unsigned long* recvBuffer, vtkIdType length, int srcProcessId)
641  {
642  return this->ScatterVoidArray(sendBuffer, recvBuffer, length, VTK_UNSIGNED_LONG, srcProcessId);
643  }
644  int Scatter(
645  const unsigned char* sendBuffer, unsigned char* recvBuffer, vtkIdType length, int srcProcessId)
646  {
647  return this->ScatterVoidArray(sendBuffer, recvBuffer, length, VTK_UNSIGNED_CHAR, srcProcessId);
648  }
649  int Scatter(const char* sendBuffer, char* recvBuffer, vtkIdType length, int srcProcessId)
650  {
651  return this->ScatterVoidArray(sendBuffer, recvBuffer, length, VTK_CHAR, srcProcessId);
652  }
653  int Scatter(
654  const signed char* sendBuffer, signed char* recvBuffer, vtkIdType length, int srcProcessId)
655  {
656  return this->ScatterVoidArray(sendBuffer, recvBuffer, length, VTK_SIGNED_CHAR, srcProcessId);
657  }
658  int Scatter(const float* sendBuffer, float* recvBuffer, vtkIdType length, int srcProcessId)
659  {
660  return this->ScatterVoidArray(sendBuffer, recvBuffer, length, VTK_FLOAT, srcProcessId);
661  }
662  int Scatter(const double* sendBuffer, double* recvBuffer, vtkIdType length, int srcProcessId)
663  {
664  return this->ScatterVoidArray(sendBuffer, recvBuffer, length, VTK_DOUBLE, srcProcessId);
665  }
666  int Scatter(
667  const long long* sendBuffer, long long* recvBuffer, vtkIdType length, int srcProcessId)
668  {
669  return this->ScatterVoidArray(sendBuffer, recvBuffer, length, VTK_LONG_LONG, srcProcessId);
670  }
671  int Scatter(const unsigned long long* sendBuffer, unsigned long long* recvBuffer,
672  vtkIdType length, int srcProcessId)
673  {
674  return this->ScatterVoidArray(
675  sendBuffer, recvBuffer, length, VTK_UNSIGNED_LONG_LONG, srcProcessId);
676  }
677  int Scatter(vtkDataArray* sendBuffer, vtkDataArray* recvBuffer, int srcProcessId);
679 
681 
688  int ScatterV(const int* sendBuffer, int* recvBuffer, vtkIdType* sendLengths, vtkIdType* offsets,
689  vtkIdType recvLength, int srcProcessId)
690  {
691  return this->ScatterVVoidArray(
692  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, VTK_INT, srcProcessId);
693  }
694  int ScatterV(const unsigned int* sendBuffer, unsigned int* recvBuffer, vtkIdType* sendLengths,
695  vtkIdType* offsets, vtkIdType recvLength, int srcProcessId)
696  {
697  return this->ScatterVVoidArray(
698  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, VTK_UNSIGNED_INT, srcProcessId);
699  }
700  int ScatterV(const short* sendBuffer, short* recvBuffer, vtkIdType* sendLengths,
701  vtkIdType* offsets, vtkIdType recvLength, int srcProcessId)
702  {
703  return this->ScatterVVoidArray(
704  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, VTK_SHORT, srcProcessId);
705  }
706  int ScatterV(const unsigned short* sendBuffer, unsigned short* recvBuffer, vtkIdType* sendLengths,
707  vtkIdType* offsets, vtkIdType recvLength, int srcProcessId)
708  {
709  return this->ScatterVVoidArray(
710  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, VTK_UNSIGNED_SHORT, srcProcessId);
711  }
712  int ScatterV(const long* sendBuffer, long* recvBuffer, vtkIdType* sendLengths, vtkIdType* offsets,
713  vtkIdType recvLength, int srcProcessId)
714  {
715  return this->ScatterVVoidArray(
716  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, VTK_LONG, srcProcessId);
717  }
718  int ScatterV(const unsigned long* sendBuffer, unsigned long* recvBuffer, vtkIdType* sendLengths,
719  vtkIdType* offsets, vtkIdType recvLength, int srcProcessId)
720  {
721  return this->ScatterVVoidArray(
722  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, VTK_UNSIGNED_LONG, srcProcessId);
723  }
724  int ScatterV(const unsigned char* sendBuffer, unsigned char* recvBuffer, vtkIdType* sendLengths,
725  vtkIdType* offsets, vtkIdType recvLength, int srcProcessId)
726  {
727  return this->ScatterVVoidArray(
728  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, VTK_UNSIGNED_CHAR, srcProcessId);
729  }
730  int ScatterV(const char* sendBuffer, char* recvBuffer, vtkIdType* sendLengths, vtkIdType* offsets,
731  vtkIdType recvLength, int srcProcessId)
732  {
733  return this->ScatterVVoidArray(
734  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, VTK_CHAR, srcProcessId);
735  }
736  int ScatterV(const signed char* sendBuffer, signed char* recvBuffer, vtkIdType* sendLengths,
737  vtkIdType* offsets, vtkIdType recvLength, int srcProcessId)
738  {
739  return this->ScatterVVoidArray(
740  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, VTK_SIGNED_CHAR, srcProcessId);
741  }
742  int ScatterV(const float* sendBuffer, float* recvBuffer, vtkIdType* sendLengths,
743  vtkIdType* offsets, vtkIdType recvLength, int srcProcessId)
744  {
745  return this->ScatterVVoidArray(
746  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, VTK_FLOAT, srcProcessId);
747  }
748  int ScatterV(const double* sendBuffer, double* recvBuffer, vtkIdType* sendLengths,
749  vtkIdType* offsets, vtkIdType recvLength, int srcProcessId)
750  {
751  return this->ScatterVVoidArray(
752  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, VTK_DOUBLE, srcProcessId);
753  }
754  int ScatterV(const long long* sendBuffer, long long* recvBuffer, vtkIdType* sendLengths,
755  vtkIdType* offsets, vtkIdType recvLength, int srcProcessId)
756  {
757  return this->ScatterVVoidArray(
758  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, VTK_LONG_LONG, srcProcessId);
759  }
760  int ScatterV(const unsigned long long* sendBuffer, unsigned long long* recvBuffer,
761  vtkIdType* sendLengths, vtkIdType* offsets, vtkIdType recvLength, int srcProcessId)
762  {
763  return this->ScatterVVoidArray(sendBuffer, recvBuffer, sendLengths, offsets, recvLength,
764  VTK_UNSIGNED_LONG_LONG, srcProcessId);
765  }
767 
769 
772  int AllGather(const int* sendBuffer, int* recvBuffer, vtkIdType length)
773  {
774  return this->AllGatherVoidArray(sendBuffer, recvBuffer, length, VTK_INT);
775  }
776  int AllGather(const unsigned int* sendBuffer, unsigned int* recvBuffer, vtkIdType length)
777  {
778  return this->AllGatherVoidArray(sendBuffer, recvBuffer, length, VTK_UNSIGNED_INT);
779  }
780  int AllGather(const short* sendBuffer, short* recvBuffer, vtkIdType length)
781  {
782  return this->AllGatherVoidArray(sendBuffer, recvBuffer, length, VTK_SHORT);
783  }
784  int AllGather(const unsigned short* sendBuffer, unsigned short* recvBuffer, vtkIdType length)
785  {
786  return this->AllGatherVoidArray(sendBuffer, recvBuffer, length, VTK_UNSIGNED_SHORT);
787  }
788  int AllGather(const long* sendBuffer, long* recvBuffer, vtkIdType length)
789  {
790  return this->AllGatherVoidArray(sendBuffer, recvBuffer, length, VTK_LONG);
791  }
792  int AllGather(const unsigned long* sendBuffer, unsigned long* recvBuffer, vtkIdType length)
793  {
794  return this->AllGatherVoidArray(sendBuffer, recvBuffer, length, VTK_UNSIGNED_LONG);
795  }
796  int AllGather(const unsigned char* sendBuffer, unsigned char* recvBuffer, vtkIdType length)
797  {
798  return this->AllGatherVoidArray(sendBuffer, recvBuffer, length, VTK_UNSIGNED_CHAR);
799  }
800  int AllGather(const char* sendBuffer, char* recvBuffer, vtkIdType length)
801  {
802  return this->AllGatherVoidArray(sendBuffer, recvBuffer, length, VTK_CHAR);
803  }
804  int AllGather(const signed char* sendBuffer, signed char* recvBuffer, vtkIdType length)
805  {
806  return this->AllGatherVoidArray(sendBuffer, recvBuffer, length, VTK_SIGNED_CHAR);
807  }
808  int AllGather(const float* sendBuffer, float* recvBuffer, vtkIdType length)
809  {
810  return this->AllGatherVoidArray(sendBuffer, recvBuffer, length, VTK_FLOAT);
811  }
812  int AllGather(const double* sendBuffer, double* recvBuffer, vtkIdType length)
813  {
814  return this->AllGatherVoidArray(sendBuffer, recvBuffer, length, VTK_DOUBLE);
815  }
816  int AllGather(const long long* sendBuffer, long long* recvBuffer, vtkIdType length)
817  {
818  return this->AllGatherVoidArray(sendBuffer, recvBuffer, length, VTK_LONG_LONG);
819  }
821  const unsigned long long* sendBuffer, unsigned long long* recvBuffer, vtkIdType length)
822  {
823  return this->AllGatherVoidArray(sendBuffer, recvBuffer, length, VTK_UNSIGNED_LONG_LONG);
824  }
825  int AllGather(vtkDataArray* sendBuffer, vtkDataArray* recvBuffer);
826  int AllGather(
827  const vtkMultiProcessStream& sendBuffer, std::vector<vtkMultiProcessStream>& recvBuffer);
829 
840  int AllGather(vtkDataObject* sendBuffer, std::vector<vtkSmartPointer<vtkDataObject>>& recvBuffer);
841 
843 
846  int AllGatherV(const int* sendBuffer, int* recvBuffer, vtkIdType sendLength,
847  vtkIdType* recvLengths, vtkIdType* offsets)
848  {
849  return this->AllGatherVVoidArray(
850  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_INT);
851  }
852  int AllGatherV(const unsigned int* sendBuffer, unsigned int* recvBuffer, vtkIdType sendLength,
853  vtkIdType* recvLengths, vtkIdType* offsets)
854  {
855  return this->AllGatherVVoidArray(
856  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_UNSIGNED_INT);
857  }
858  int AllGatherV(const short* sendBuffer, short* recvBuffer, vtkIdType sendLength,
859  vtkIdType* recvLengths, vtkIdType* offsets)
860  {
861  return this->AllGatherVVoidArray(
862  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_SHORT);
863  }
864  int AllGatherV(const unsigned short* sendBuffer, unsigned short* recvBuffer, vtkIdType sendLength,
865  vtkIdType* recvLengths, vtkIdType* offsets)
866  {
867  return this->AllGatherVVoidArray(
868  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_UNSIGNED_SHORT);
869  }
870  int AllGatherV(const long* sendBuffer, long* recvBuffer, vtkIdType sendLength,
871  vtkIdType* recvLengths, vtkIdType* offsets)
872  {
873  return this->AllGatherVVoidArray(
874  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_LONG);
875  }
876  int AllGatherV(const unsigned long* sendBuffer, unsigned long* recvBuffer, vtkIdType sendLength,
877  vtkIdType* recvLengths, vtkIdType* offsets)
878  {
879  return this->AllGatherVVoidArray(
880  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_UNSIGNED_LONG);
881  }
882  int AllGatherV(const unsigned char* sendBuffer, unsigned char* recvBuffer, vtkIdType sendLength,
883  vtkIdType* recvLengths, vtkIdType* offsets)
884  {
885  return this->AllGatherVVoidArray(
886  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_UNSIGNED_CHAR);
887  }
888  int AllGatherV(const char* sendBuffer, char* recvBuffer, vtkIdType sendLength,
889  vtkIdType* recvLengths, vtkIdType* offsets)
890  {
891  return this->AllGatherVVoidArray(
892  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_CHAR);
893  }
894  int AllGatherV(const signed char* sendBuffer, signed char* recvBuffer, vtkIdType sendLength,
895  vtkIdType* recvLengths, vtkIdType* offsets)
896  {
897  return this->AllGatherVVoidArray(
898  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_UNSIGNED_CHAR);
899  }
900  int AllGatherV(const float* sendBuffer, float* recvBuffer, vtkIdType sendLength,
901  vtkIdType* recvLengths, vtkIdType* offsets)
902  {
903  return this->AllGatherVVoidArray(
904  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_FLOAT);
905  }
906  int AllGatherV(const double* sendBuffer, double* recvBuffer, vtkIdType sendLength,
907  vtkIdType* recvLengths, vtkIdType* offsets)
908  {
909  return this->AllGatherVVoidArray(
910  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_DOUBLE);
911  }
912  int AllGatherV(const long long* sendBuffer, long long* recvBuffer, vtkIdType sendLength,
913  vtkIdType* recvLengths, vtkIdType* offsets)
914  {
915  return this->AllGatherVVoidArray(
916  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_LONG_LONG);
917  }
918  int AllGatherV(const unsigned long long* sendBuffer, unsigned long long* recvBuffer,
919  vtkIdType sendLength, vtkIdType* recvLengths, vtkIdType* offsets)
920  {
921  return this->AllGatherVVoidArray(
922  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, VTK_UNSIGNED_LONG_LONG);
923  }
924  int AllGatherV(
925  vtkDataArray* sendBuffer, vtkDataArray* recvBuffer, vtkIdType* recvLengths, vtkIdType* offsets);
926  int AllGatherV(vtkDataArray* sendBuffer, vtkDataArray* recvBuffer);
928 
930 
935  int Reduce(
936  const int* sendBuffer, int* recvBuffer, vtkIdType length, int operation, int destProcessId)
937  {
938  return this->ReduceVoidArray(sendBuffer, recvBuffer, length, VTK_INT, operation, destProcessId);
939  }
940  int Reduce(const unsigned int* sendBuffer, unsigned int* recvBuffer, vtkIdType length,
941  int operation, int destProcessId)
942  {
943  return this->ReduceVoidArray(
944  sendBuffer, recvBuffer, length, VTK_UNSIGNED_INT, operation, destProcessId);
945  }
946  int Reduce(
947  const short* sendBuffer, short* recvBuffer, vtkIdType length, int operation, int destProcessId)
948  {
949  return this->ReduceVoidArray(
950  sendBuffer, recvBuffer, length, VTK_SHORT, operation, destProcessId);
951  }
952  int Reduce(const unsigned short* sendBuffer, unsigned short* recvBuffer, vtkIdType length,
953  int operation, int destProcessId)
954  {
955  return this->ReduceVoidArray(
956  sendBuffer, recvBuffer, length, VTK_UNSIGNED_SHORT, operation, destProcessId);
957  }
958  int Reduce(
959  const long* sendBuffer, long* recvBuffer, vtkIdType length, int operation, int destProcessId)
960  {
961  return this->ReduceVoidArray(
962  sendBuffer, recvBuffer, length, VTK_LONG, operation, destProcessId);
963  }
964  int Reduce(const unsigned long* sendBuffer, unsigned long* recvBuffer, vtkIdType length,
965  int operation, int destProcessId)
966  {
967  return this->ReduceVoidArray(
968  sendBuffer, recvBuffer, length, VTK_UNSIGNED_LONG, operation, destProcessId);
969  }
970  int Reduce(const unsigned char* sendBuffer, unsigned char* recvBuffer, vtkIdType length,
971  int operation, int destProcessId)
972  {
973  return this->ReduceVoidArray(
974  sendBuffer, recvBuffer, length, VTK_UNSIGNED_CHAR, operation, destProcessId);
975  }
976  int Reduce(
977  const char* sendBuffer, char* recvBuffer, vtkIdType length, int operation, int destProcessId)
978  {
979  return this->ReduceVoidArray(
980  sendBuffer, recvBuffer, length, VTK_CHAR, operation, destProcessId);
981  }
982  int Reduce(const signed char* sendBuffer, signed char* recvBuffer, vtkIdType length,
983  int operation, int destProcessId)
984  {
985  return this->ReduceVoidArray(
986  sendBuffer, recvBuffer, length, VTK_SIGNED_CHAR, operation, destProcessId);
987  }
988  int Reduce(
989  const float* sendBuffer, float* recvBuffer, vtkIdType length, int operation, int destProcessId)
990  {
991  return this->ReduceVoidArray(
992  sendBuffer, recvBuffer, length, VTK_FLOAT, operation, destProcessId);
993  }
994  int Reduce(const double* sendBuffer, double* recvBuffer, vtkIdType length, int operation,
995  int destProcessId)
996  {
997  return this->ReduceVoidArray(
998  sendBuffer, recvBuffer, length, VTK_DOUBLE, operation, destProcessId);
999  }
1000  int Reduce(const long long* sendBuffer, long long* recvBuffer, vtkIdType length, int operation,
1001  int destProcessId)
1002  {
1003  return this->ReduceVoidArray(
1004  sendBuffer, recvBuffer, length, VTK_LONG_LONG, operation, destProcessId);
1005  }
1006  int Reduce(const unsigned long long* sendBuffer, unsigned long long* recvBuffer, vtkIdType length,
1007  int operation, int destProcessId)
1008  {
1009  return this->ReduceVoidArray(
1010  sendBuffer, recvBuffer, length, VTK_UNSIGNED_LONG_LONG, operation, destProcessId);
1011  }
1012  int Reduce(vtkDataArray* sendBuffer, vtkDataArray* recvBuffer, int operation, int destProcessId);
1014 
1016 
1020  int Reduce(const int* sendBuffer, int* recvBuffer, vtkIdType length, Operation* operation,
1021  int destProcessId)
1022  {
1023  return this->ReduceVoidArray(sendBuffer, recvBuffer, length, VTK_INT, operation, destProcessId);
1024  }
1025  int Reduce(const unsigned int* sendBuffer, unsigned int* recvBuffer, vtkIdType length,
1026  Operation* operation, int destProcessId)
1027  {
1028  return this->ReduceVoidArray(
1029  sendBuffer, recvBuffer, length, VTK_UNSIGNED_INT, operation, destProcessId);
1030  }
1031  int Reduce(const short* sendBuffer, short* recvBuffer, vtkIdType length, Operation* operation,
1032  int destProcessId)
1033  {
1034  return this->ReduceVoidArray(
1035  sendBuffer, recvBuffer, length, VTK_SHORT, operation, destProcessId);
1036  }
1037  int Reduce(const unsigned short* sendBuffer, unsigned short* recvBuffer, vtkIdType length,
1038  Operation* operation, int destProcessId)
1039  {
1040  return this->ReduceVoidArray(
1041  sendBuffer, recvBuffer, length, VTK_UNSIGNED_SHORT, operation, destProcessId);
1042  }
1043  int Reduce(const long* sendBuffer, long* recvBuffer, vtkIdType length, Operation* operation,
1044  int destProcessId)
1045  {
1046  return this->ReduceVoidArray(
1047  sendBuffer, recvBuffer, length, VTK_LONG, operation, destProcessId);
1048  }
1049  int Reduce(const unsigned long* sendBuffer, unsigned long* recvBuffer, vtkIdType length,
1050  Operation* operation, int destProcessId)
1051  {
1052  return this->ReduceVoidArray(
1053  sendBuffer, recvBuffer, length, VTK_UNSIGNED_LONG, operation, destProcessId);
1054  }
1055  int Reduce(const unsigned char* sendBuffer, unsigned char* recvBuffer, vtkIdType length,
1056  Operation* operation, int destProcessId)
1057  {
1058  return this->ReduceVoidArray(
1059  sendBuffer, recvBuffer, length, VTK_UNSIGNED_CHAR, operation, destProcessId);
1060  }
1061  int Reduce(const char* sendBuffer, char* recvBuffer, vtkIdType length, Operation* operation,
1062  int destProcessId)
1063  {
1064  return this->ReduceVoidArray(
1065  sendBuffer, recvBuffer, length, VTK_CHAR, operation, destProcessId);
1066  }
1067  int Reduce(const signed char* sendBuffer, signed char* recvBuffer, vtkIdType length,
1068  Operation* operation, int destProcessId)
1069  {
1070  return this->ReduceVoidArray(
1071  sendBuffer, recvBuffer, length, VTK_SIGNED_CHAR, operation, destProcessId);
1072  }
1073  int Reduce(const float* sendBuffer, float* recvBuffer, vtkIdType length, Operation* operation,
1074  int destProcessId)
1075  {
1076  return this->ReduceVoidArray(
1077  sendBuffer, recvBuffer, length, VTK_FLOAT, operation, destProcessId);
1078  }
1079  int Reduce(const double* sendBuffer, double* recvBuffer, vtkIdType length, Operation* operation,
1080  int destProcessId)
1081  {
1082  return this->ReduceVoidArray(
1083  sendBuffer, recvBuffer, length, VTK_DOUBLE, operation, destProcessId);
1084  }
1085  int Reduce(const long long* sendBuffer, long long* recvBuffer, vtkIdType length,
1086  Operation* operation, int destProcessId)
1087  {
1088  return this->ReduceVoidArray(
1089  sendBuffer, recvBuffer, length, VTK_LONG_LONG, operation, destProcessId);
1090  }
1091  int Reduce(const unsigned long long* sendBuffer, unsigned long long* recvBuffer, vtkIdType length,
1092  Operation* operation, int destProcessId)
1093  {
1094  return this->ReduceVoidArray(
1095  sendBuffer, recvBuffer, length, VTK_UNSIGNED_LONG_LONG, operation, destProcessId);
1096  }
1097  int Reduce(
1098  vtkDataArray* sendBuffer, vtkDataArray* recvBuffer, Operation* operation, int destProcessId);
1100 
1102 
1105  int AllReduce(const int* sendBuffer, int* recvBuffer, vtkIdType length, int operation)
1106  {
1107  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_INT, operation);
1108  }
1110  const unsigned int* sendBuffer, unsigned int* recvBuffer, vtkIdType length, int operation)
1111  {
1112  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_UNSIGNED_INT, operation);
1113  }
1114  int AllReduce(const short* sendBuffer, short* recvBuffer, vtkIdType length, int operation)
1115  {
1116  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_SHORT, operation);
1117  }
1119  const unsigned short* sendBuffer, unsigned short* recvBuffer, vtkIdType length, int operation)
1120  {
1121  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_UNSIGNED_SHORT, operation);
1122  }
1123  int AllReduce(const long* sendBuffer, long* recvBuffer, vtkIdType length, int operation)
1124  {
1125  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_LONG, operation);
1126  }
1128  const unsigned long* sendBuffer, unsigned long* recvBuffer, vtkIdType length, int operation)
1129  {
1130  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_UNSIGNED_LONG, operation);
1131  }
1133  const unsigned char* sendBuffer, unsigned char* recvBuffer, vtkIdType length, int operation)
1134  {
1135  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_UNSIGNED_CHAR, operation);
1136  }
1137  int AllReduce(const char* sendBuffer, char* recvBuffer, vtkIdType length, int operation)
1138  {
1139  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_CHAR, operation);
1140  }
1142  const signed char* sendBuffer, signed char* recvBuffer, vtkIdType length, int operation)
1143  {
1144  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_SIGNED_CHAR, operation);
1145  }
1146  int AllReduce(const float* sendBuffer, float* recvBuffer, vtkIdType length, int operation)
1147  {
1148  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_FLOAT, operation);
1149  }
1150  int AllReduce(const double* sendBuffer, double* recvBuffer, vtkIdType length, int operation)
1151  {
1152  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_DOUBLE, operation);
1153  }
1154  int AllReduce(const long long* sendBuffer, long long* recvBuffer, vtkIdType length, int operation)
1155  {
1156  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_LONG_LONG, operation);
1157  }
1158  int AllReduce(const unsigned long long* sendBuffer, unsigned long long* recvBuffer,
1159  vtkIdType length, int operation)
1160  {
1161  return this->AllReduceVoidArray(
1162  sendBuffer, recvBuffer, length, VTK_UNSIGNED_LONG_LONG, operation);
1163  }
1164  int AllReduce(vtkDataArray* sendBuffer, vtkDataArray* recvBuffer, int operation);
1165  int AllReduce(const int* sendBuffer, int* recvBuffer, vtkIdType length, Operation* operation)
1166  {
1167  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_INT, operation);
1168  }
1169  int AllReduce(const unsigned int* sendBuffer, unsigned int* recvBuffer, vtkIdType length,
1170  Operation* operation)
1171  {
1172  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_UNSIGNED_INT, operation);
1173  }
1174  int AllReduce(const short* sendBuffer, short* recvBuffer, vtkIdType length, Operation* operation)
1175  {
1176  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_SHORT, operation);
1177  }
1178  int AllReduce(const unsigned short* sendBuffer, unsigned short* recvBuffer, vtkIdType length,
1179  Operation* operation)
1180  {
1181  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_UNSIGNED_SHORT, operation);
1182  }
1183  int AllReduce(const long* sendBuffer, long* recvBuffer, vtkIdType length, Operation* operation)
1184  {
1185  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_LONG, operation);
1186  }
1187  int AllReduce(const unsigned long* sendBuffer, unsigned long* recvBuffer, vtkIdType length,
1188  Operation* operation)
1189  {
1190  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_UNSIGNED_LONG, operation);
1191  }
1192  int AllReduce(const unsigned char* sendBuffer, unsigned char* recvBuffer, vtkIdType length,
1193  Operation* operation)
1194  {
1195  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_UNSIGNED_CHAR, operation);
1196  }
1197  int AllReduce(const char* sendBuffer, char* recvBuffer, vtkIdType length, Operation* operation)
1198  {
1199  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_CHAR, operation);
1200  }
1202  const signed char* sendBuffer, signed char* recvBuffer, vtkIdType length, Operation* operation)
1203  {
1204  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_SIGNED_CHAR, operation);
1205  }
1206  int AllReduce(const float* sendBuffer, float* recvBuffer, vtkIdType length, Operation* operation)
1207  {
1208  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_FLOAT, operation);
1209  }
1211  const double* sendBuffer, double* recvBuffer, vtkIdType length, Operation* operation)
1212  {
1213  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_DOUBLE, operation);
1214  }
1216  const long long* sendBuffer, long long* recvBuffer, vtkIdType length, Operation* operation)
1217  {
1218  return this->AllReduceVoidArray(sendBuffer, recvBuffer, length, VTK_LONG_LONG, operation);
1219  }
1220  int AllReduce(const unsigned long long* sendBuffer, unsigned long long* recvBuffer,
1221  vtkIdType length, Operation* operation)
1222  {
1223  return this->AllReduceVoidArray(
1224  sendBuffer, recvBuffer, length, VTK_UNSIGNED_LONG_LONG, operation);
1225  }
1226  int AllReduce(vtkDataArray* sendBuffer, vtkDataArray* recvBuffer, Operation* operation);
1228 
1230 
1234  virtual int BroadcastVoidArray(void* data, vtkIdType length, int type, int srcProcessId);
1235  virtual int GatherVoidArray(
1236  const void* sendBuffer, void* recvBuffer, vtkIdType length, int type, int destProcessId);
1237  virtual int GatherVVoidArray(const void* sendBuffer, void* recvBuffer, vtkIdType sendLength,
1238  vtkIdType* recvLengths, vtkIdType* offsets, int type, int destProcessId);
1239  virtual int ScatterVoidArray(
1240  const void* sendBuffer, void* recvBuffer, vtkIdType length, int type, int srcProcessId);
1241  virtual int ScatterVVoidArray(const void* sendBuffer, void* recvBuffer, vtkIdType* sendLengths,
1242  vtkIdType* offsets, vtkIdType recvLength, int type, int srcProcessId);
1243  virtual int AllGatherVoidArray(
1244  const void* sendBuffer, void* recvBuffer, vtkIdType length, int type);
1245  virtual int AllGatherVVoidArray(const void* sendBuffer, void* recvBuffer, vtkIdType sendLength,
1246  vtkIdType* recvLengths, vtkIdType* offsets, int type);
1247  virtual int ReduceVoidArray(const void* sendBuffer, void* recvBuffer, vtkIdType length, int type,
1248  int operation, int destProcessId);
1249  virtual int ReduceVoidArray(const void* sendBuffer, void* recvBuffer, vtkIdType length, int type,
1250  Operation* operation, int destProcessId);
1251  virtual int AllReduceVoidArray(
1252  const void* sendBuffer, void* recvBuffer, vtkIdType length, int type, int operation);
1253  virtual int AllReduceVoidArray(
1254  const void* sendBuffer, void* recvBuffer, vtkIdType length, int type, Operation* operation);
1256 
1265  virtual bool CanProbe() { return false; }
1266 
1276  virtual int Probe(int vtkNotUsed(source), int vtkNotUsed(tag), int* vtkNotUsed(actualSource))
1277  {
1278  vtkErrorMacro("Probe not implemented for this controller.");
1279  return 0;
1280  }
1281 
1282  static void SetUseCopy(int useCopy);
1283 
1295  virtual int ComputeGlobalBounds(int processorId, int numProcesses, vtkBoundingBox* bounds,
1296  int* rightHasBounds = nullptr, int* leftHasBounds = nullptr, int hasBoundsTag = 288402,
1297  int localBoundsTag = 288403, int globalBoundsTag = 288404);
1298 
1300 
1305  static int GetParentProcessor(int pid);
1306  static int GetLeftChildProcessor(int pid);
1308 
1310 
1315  static int MarshalDataObject(vtkDataObject* object, vtkCharArray* buffer);
1316  static int UnMarshalDataObject(vtkCharArray* buffer, vtkDataObject* object);
1318 
1325  static vtkSmartPointer<vtkDataObject> UnMarshalDataObject(vtkCharArray* buffer);
1326 
1327 protected:
1328  int WriteDataArray(vtkDataArray* object);
1329  int ReadDataArray(vtkDataArray* object);
1330 
1331  vtkCommunicator();
1332  ~vtkCommunicator() override;
1333 
1334  // Internal methods called by Send/Receive(vtkDataObject *... ) above.
1335  int SendElementalDataObject(vtkDataObject* data, int remoteHandle, int tag);
1337 
1345  int GatherV(vtkDataArray* sendArray, vtkDataArray* recvArray,
1346  vtkSmartPointer<vtkDataArray>* recvArrays, int destProcessId);
1347  int GatherVElementalDataObject(
1348  vtkDataObject* sendData, vtkSmartPointer<vtkDataObject>* receiveData, int destProcessId);
1350 
1352  int AllGatherV(vtkDataArray* sendBuffer, vtkDataArray* recvBuffer,
1353  vtkIdTypeArray* recvLengthsArray, vtkIdTypeArray* offsetsArray);
1354  int AllGatherV(
1355  vtkDataArray* sendArray, vtkDataArray* recvArray, vtkSmartPointer<vtkDataArray>* recvArrays);
1357 
1358  int ReceiveDataObject(vtkDataObject* data, int remoteHandle, int tag, int type = -1);
1359  int ReceiveElementalDataObject(vtkDataObject* data, int remoteHandle, int tag);
1360  int ReceiveMultiBlockDataSet(vtkMultiBlockDataSet* data, int remoteHandle, int tag);
1361 
1368  virtual int GetTagMaxValue() const { return VTK_INT_MAX; }
1369 
1372 
1374 
1375  static int UseCopy;
1376 
1378 
1379 private:
1380  vtkCommunicator(const vtkCommunicator&) = delete;
1381  void operator=(const vtkCommunicator&) = delete;
1382 };
1383 
1384 VTK_ABI_NAMESPACE_END
1385 #endif // vtkCommunicator_h
int Receive(double *data, vtkIdType maxlength, int remoteHandle, int tag)
Convenience methods for receiving data arrays.
virtual int Probe(int source, int tag, int *actualSource)
Blocking test for checking for a message tagged with tag from source process (if source == ANY_SOURCE...
int Receive(unsigned int *data, vtkIdType maxlength, int remoteHandle, int tag)
Convenience methods for receiving data arrays.
int AllGather(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length)
Same as gather except that the result ends up on all processes.
int Broadcast(float *data, vtkIdType length, int srcProcessId)
Broadcast sends the array in the process with id srcProcessId to all of the other processes...
int AllReduce(const char *sendBuffer, char *recvBuffer, vtkIdType length, Operation *operation)
Same as Reduce except that the result is placed in all of the processes.
int Gather(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, int destProcessId)
Gather collects arrays in the process with id destProcessId.
int ScatterV(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
ScatterV is the vector variant of Scatter.
int ScatterV(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
ScatterV is the vector variant of Scatter.
int Gather(const int *sendBuffer, int *recvBuffer, vtkIdType length, int destProcessId)
Gather collects arrays in the process with id destProcessId.
int GatherV(const double *sendBuffer, double *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
GatherV is the vector variant of Gather.
int AllReduce(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length, int operation)
Same as Reduce except that the result is placed in all of the processes.
virtual int GetTagMaxValue() const
Return the maximum value that the tag can take for tag sending and receive.
A custom operation to use in a reduce command.
int AllGatherV(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Same as GatherV except that the result is placed in all processes.
int Send(const short *data, vtkIdType length, int remoteHandle, int tag)
Convenience methods for sending data arrays.
int Reduce(const long *sendBuffer, long *recvBuffer, vtkIdType length, Operation *operation, int destProcessId)
Reduce an array to the given destination process.
int ScatterV(const double *sendBuffer, double *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
ScatterV is the vector variant of Scatter.
int AllReduce(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length, int operation)
Same as Reduce except that the result is placed in all of the processes.
#define VTK_UNSIGNED_INT
Definition: vtkType.h:40
int Send(const int *data, vtkIdType length, int remoteHandle, int tag)
Convenience methods for sending data arrays.
abstract base class for most VTK objects
Definition: vtkObject.h:52
int GatherV(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
GatherV is the vector variant of Gather.
int Receive(unsigned char *data, vtkIdType maxlength, int remoteHandle, int tag)
Convenience methods for receiving data arrays.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int Scatter(const double *sendBuffer, double *recvBuffer, vtkIdType length, int srcProcessId)
Scatter takes an array in the process with id srcProcessId and distributes it.
int AllGather(const long long *sendBuffer, long long *recvBuffer, vtkIdType length)
Same as gather except that the result ends up on all processes.
stream used to pass data across processes using vtkMultiProcessController.
int Gather(const long long *sendBuffer, long long *recvBuffer, vtkIdType length, int destProcessId)
Gather collects arrays in the process with id destProcessId.
int Receive(long long *data, vtkIdType maxlength, int remoteHandle, int tag)
Convenience methods for receiving data arrays.
int GatherV(const char *sendBuffer, char *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
GatherV is the vector variant of Gather.
int Gather(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, int destProcessId)
Gather collects arrays in the process with id destProcessId.
#define VTK_UNSIGNED_SHORT
Definition: vtkType.h:38
int AllGatherV(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Same as GatherV except that the result is placed in all processes.
abstract class to specify dataset behavior
Definition: vtkDataSet.h:56
int Gather(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length, int destProcessId)
Gather collects arrays in the process with id destProcessId.
int AllReduce(const long long *sendBuffer, long long *recvBuffer, vtkIdType length, int operation)
Same as Reduce except that the result is placed in all of the processes.
int AllReduce(const double *sendBuffer, double *recvBuffer, vtkIdType length, Operation *operation)
Same as Reduce except that the result is placed in all of the processes.
int AllReduce(const float *sendBuffer, float *recvBuffer, vtkIdType length, Operation *operation)
Same as Reduce except that the result is placed in all of the processes.
int Reduce(const float *sendBuffer, float *recvBuffer, vtkIdType length, int operation, int destProcessId)
Reduce an array to the given destination process.
int Reduce(const double *sendBuffer, double *recvBuffer, vtkIdType length, Operation *operation, int destProcessId)
Reduce an array to the given destination process.
int Scatter(const long long *sendBuffer, long long *recvBuffer, vtkIdType length, int srcProcessId)
Scatter takes an array in the process with id srcProcessId and distributes it.
#define VTK_INT_MAX
Definition: vtkType.h:192
int Reduce(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length, Operation *operation, int destProcessId)
Reduce an array to the given destination process.
int ScatterV(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
ScatterV is the vector variant of Scatter.
int Scatter(const long *sendBuffer, long *recvBuffer, vtkIdType length, int srcProcessId)
Scatter takes an array in the process with id srcProcessId and distributes it.
int Send(const float *data, vtkIdType length, int remoteHandle, int tag)
Convenience methods for sending data arrays.
virtual bool CanProbe()
Check if this communicator implements a probe operation.
int Scatter(const char *sendBuffer, char *recvBuffer, vtkIdType length, int srcProcessId)
Scatter takes an array in the process with id srcProcessId and distributes it.
int AllReduce(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, Operation *operation)
Same as Reduce except that the result is placed in all of the processes.
int Broadcast(unsigned short *data, vtkIdType length, int srcProcessId)
Broadcast sends the array in the process with id srcProcessId to all of the other processes...
int Send(const unsigned short *data, vtkIdType length, int remoteHandle, int tag)
Convenience methods for sending data arrays.
int Scatter(const short *sendBuffer, short *recvBuffer, vtkIdType length, int srcProcessId)
Scatter takes an array in the process with id srcProcessId and distributes it.
int ScatterV(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
ScatterV is the vector variant of Scatter.
int Broadcast(signed char *data, vtkIdType length, int srcProcessId)
Broadcast sends the array in the process with id srcProcessId to all of the other processes...
int GatherV(const long long *sendBuffer, long long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
GatherV is the vector variant of Gather.
int AllReduce(const long long *sendBuffer, long long *recvBuffer, vtkIdType length, Operation *operation)
Same as Reduce except that the result is placed in all of the processes.
int Send(const signed char *data, vtkIdType length, int remoteHandle, int tag)
Convenience methods for sending data arrays.
int Reduce(const int *sendBuffer, int *recvBuffer, vtkIdType length, Operation *operation, int destProcessId)
Reduce an array to the given destination process.
int GatherV(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
GatherV is the vector variant of Gather.
int AllReduce(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, Operation *operation)
Same as Reduce except that the result is placed in all of the processes.
dynamic, self-adjusting array of vtkIdType
int Reduce(const long long *sendBuffer, long long *recvBuffer, vtkIdType length, Operation *operation, int destProcessId)
Reduce an array to the given destination process.
int vtkIdType
Definition: vtkType.h:363
int AllGatherV(const int *sendBuffer, int *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Same as GatherV except that the result is placed in all processes.
int AllReduce(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length, Operation *operation)
Same as Reduce except that the result is placed in all of the processes.
int Broadcast(char *data, vtkIdType length, int srcProcessId)
Broadcast sends the array in the process with id srcProcessId to all of the other processes...
int AllGather(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length)
Same as gather except that the result ends up on all processes.
int AllGather(const double *sendBuffer, double *recvBuffer, vtkIdType length)
Same as gather except that the result ends up on all processes.
#define VTK_LONG_LONG
Definition: vtkType.h:52
int Send(const double *data, vtkIdType length, int remoteHandle, int tag)
Convenience methods for sending data arrays.
int ScatterV(const short *sendBuffer, short *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
ScatterV is the vector variant of Scatter.
int AllGatherV(const long long *sendBuffer, long long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Same as GatherV except that the result is placed in all processes.
int ScatterV(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
ScatterV is the vector variant of Scatter.
int GatherV(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
GatherV is the vector variant of Gather.
int AllReduce(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, Operation *operation)
Same as Reduce except that the result is placed in all of the processes.
int AllReduce(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, int operation)
Same as Reduce except that the result is placed in all of the processes.
int ScatterV(const int *sendBuffer, int *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
ScatterV is the vector variant of Scatter.
int Reduce(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length, int operation, int destProcessId)
Reduce an array to the given destination process.
int Scatter(const float *sendBuffer, float *recvBuffer, vtkIdType length, int srcProcessId)
Scatter takes an array in the process with id srcProcessId and distributes it.
int AllReduce(const char *sendBuffer, char *recvBuffer, vtkIdType length, int operation)
Same as Reduce except that the result is placed in all of the processes.
#define VTK_DOUBLE
Definition: vtkType.h:44
int Broadcast(unsigned long long *data, vtkIdType length, int srcProcessId)
Broadcast sends the array in the process with id srcProcessId to all of the other processes...
int Reduce(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, int operation, int destProcessId)
Reduce an array to the given destination process.
int ScatterV(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
ScatterV is the vector variant of Scatter.
dynamic, self-adjusting array of char
Definition: vtkCharArray.h:44
#define VTK_FLOAT
Definition: vtkType.h:43
int Broadcast(long *data, vtkIdType length, int srcProcessId)
Broadcast sends the array in the process with id srcProcessId to all of the other processes...
int AllGather(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length)
Same as gather except that the result ends up on all processes.
int AllGather(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length)
Same as gather except that the result ends up on all processes.
int AllGatherV(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Same as GatherV except that the result is placed in all processes.
int Gather(const double *sendBuffer, double *recvBuffer, vtkIdType length, int destProcessId)
Gather collects arrays in the process with id destProcessId.
int Receive(char *data, vtkIdType maxlength, int remoteHandle, int tag)
Convenience methods for receiving data arrays.
int Send(const unsigned int *data, vtkIdType length, int remoteHandle, int tag)
Convenience methods for sending data arrays.
int Send(const unsigned long long *data, vtkIdType length, int remoteHandle, int tag)
Convenience methods for sending data arrays.
int Reduce(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, Operation *operation, int destProcessId)
Reduce an array to the given destination process.
int Scatter(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, int srcProcessId)
Scatter takes an array in the process with id srcProcessId and distributes it.
int AllGatherV(const float *sendBuffer, float *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Same as GatherV except that the result is placed in all processes.
int Gather(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, int destProcessId)
Gather collects arrays in the process with id destProcessId.
int AllGatherV(const short *sendBuffer, short *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Same as GatherV except that the result is placed in all processes.
int Reduce(const float *sendBuffer, float *recvBuffer, vtkIdType length, Operation *operation, int destProcessId)
Reduce an array to the given destination process.
a simple class to control print indentation
Definition: vtkIndent.h:28
int AllReduce(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, int operation)
Same as Reduce except that the result is placed in all of the processes.
int Receive(short *data, vtkIdType maxlength, int remoteHandle, int tag)
Convenience methods for receiving data arrays.
int ScatterV(const char *sendBuffer, char *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
ScatterV is the vector variant of Scatter.
int AllGatherV(const char *sendBuffer, char *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Same as GatherV except that the result is placed in all processes.
int Receive(long *data, vtkIdType maxlength, int remoteHandle, int tag)
Convenience methods for receiving data arrays.
int GatherV(const short *sendBuffer, short *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
GatherV is the vector variant of Gather.
topologically and geometrically regular array of data
Definition: vtkImageData.h:45
int GatherV(const long *sendBuffer, long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
GatherV is the vector variant of Gather.
int Receive(signed char *data, vtkIdType maxlength, int remoteHandle, int tag)
Convenience methods for receiving data arrays.
int AllReduce(const long *sendBuffer, long *recvBuffer, vtkIdType length, int operation)
Same as Reduce except that the result is placed in all of the processes.
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:44
int AllGather(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length)
Same as gather except that the result ends up on all processes.
int Reduce(const int *sendBuffer, int *recvBuffer, vtkIdType length, int operation, int destProcessId)
Reduce an array to the given destination process.
int Gather(const short *sendBuffer, short *recvBuffer, vtkIdType length, int destProcessId)
Gather collects arrays in the process with id destProcessId.
int AllReduce(const double *sendBuffer, double *recvBuffer, vtkIdType length, int operation)
Same as Reduce except that the result is placed in all of the processes.
int Reduce(const long long *sendBuffer, long long *recvBuffer, vtkIdType length, int operation, int destProcessId)
Reduce an array to the given destination process.
#define VTK_SHORT
Definition: vtkType.h:37
#define VTK_CHAR
Definition: vtkType.h:34
int AllGather(const float *sendBuffer, float *recvBuffer, vtkIdType length)
Same as gather except that the result ends up on all processes.
#define VTK_LONG
Definition: vtkType.h:41
int AllReduce(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length, Operation *operation)
Same as Reduce except that the result is placed in all of the processes.
int Reduce(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, int operation, int destProcessId)
Reduce an array to the given destination process.
int Send(const unsigned long *data, vtkIdType length, int remoteHandle, int tag)
Convenience methods for sending data arrays.
int Gather(const char *sendBuffer, char *recvBuffer, vtkIdType length, int destProcessId)
Gather collects arrays in the process with id destProcessId.
int AllGatherV(const double *sendBuffer, double *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Same as GatherV except that the result is placed in all processes.
int Scatter(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length, int srcProcessId)
Scatter takes an array in the process with id srcProcessId and distributes it.
int Gather(const float *sendBuffer, float *recvBuffer, vtkIdType length, int destProcessId)
Gather collects arrays in the process with id destProcessId.
int AllGatherV(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Same as GatherV except that the result is placed in all processes.
int Reduce(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, int operation, int destProcessId)
Reduce an array to the given destination process.
int GatherV(const int *sendBuffer, int *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
GatherV is the vector variant of Gather.
int Broadcast(unsigned long *data, vtkIdType length, int srcProcessId)
Broadcast sends the array in the process with id srcProcessId to all of the other processes...
int AllGather(const long *sendBuffer, long *recvBuffer, vtkIdType length)
Same as gather except that the result ends up on all processes.
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
int ScatterV(const long long *sendBuffer, long long *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
ScatterV is the vector variant of Scatter.
int AllReduce(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, int operation)
Same as Reduce except that the result is placed in all of the processes.
int Scatter(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, int srcProcessId)
Scatter takes an array in the process with id srcProcessId and distributes it.
int Broadcast(long long *data, vtkIdType length, int srcProcessId)
Broadcast sends the array in the process with id srcProcessId to all of the other processes...
int Reduce(const char *sendBuffer, char *recvBuffer, vtkIdType length, Operation *operation, int destProcessId)
Reduce an array to the given destination process.
int Broadcast(short *data, vtkIdType length, int srcProcessId)
Broadcast sends the array in the process with id srcProcessId to all of the other processes...
int Scatter(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length, int srcProcessId)
Scatter takes an array in the process with id srcProcessId and distributes it.
int AllGatherV(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Same as GatherV except that the result is placed in all processes.
int AllGather(const int *sendBuffer, int *recvBuffer, vtkIdType length)
Same as gather except that the result ends up on all processes.
int Broadcast(double *data, vtkIdType length, int srcProcessId)
Broadcast sends the array in the process with id srcProcessId to all of the other processes...
#define VTK_SIGNED_CHAR
Definition: vtkType.h:35
int AllReduce(const int *sendBuffer, int *recvBuffer, vtkIdType length, Operation *operation)
Same as Reduce except that the result is placed in all of the processes.
int Reduce(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length, Operation *operation, int destProcessId)
Reduce an array to the given destination process.
int Send(const long *data, vtkIdType length, int remoteHandle, int tag)
Convenience methods for sending data arrays.
int Receive(float *data, vtkIdType maxlength, int remoteHandle, int tag)
Convenience methods for receiving data arrays.
int Send(const long long *data, vtkIdType length, int remoteHandle, int tag)
Convenience methods for sending data arrays.
int Scatter(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, int srcProcessId)
Scatter takes an array in the process with id srcProcessId and distributes it.
int Send(const unsigned char *data, vtkIdType length, int remoteHandle, int tag)
Convenience methods for sending data arrays.
#define VTK_UNSIGNED_CHAR
Definition: vtkType.h:36
int ScatterV(const float *sendBuffer, float *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
ScatterV is the vector variant of Scatter.
int Gather(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length, int destProcessId)
Gather collects arrays in the process with id destProcessId.
int AllReduce(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, Operation *operation)
Same as Reduce except that the result is placed in all of the processes.
int Reduce(const char *sendBuffer, char *recvBuffer, vtkIdType length, int operation, int destProcessId)
Reduce an array to the given destination process.
int Gather(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, int destProcessId)
Gather collects arrays in the process with id destProcessId.
int AllGather(const short *sendBuffer, short *recvBuffer, vtkIdType length)
Same as gather except that the result ends up on all processes.
int AllGather(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length)
Same as gather except that the result ends up on all processes.
Composite dataset that organizes datasets into blocks.
int AllReduce(const float *sendBuffer, float *recvBuffer, vtkIdType length, int operation)
Same as Reduce except that the result is placed in all of the processes.
int AllGatherV(const long *sendBuffer, long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Same as GatherV except that the result is placed in all processes.
int Receive(int *data, vtkIdType maxlength, int remoteHandle, int tag)
Convenience methods for receiving data arrays.
int Reduce(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, Operation *operation, int destProcessId)
Reduce an array to the given destination process.
int Receive(unsigned long long *data, vtkIdType maxlength, int remoteHandle, int tag)
Convenience methods for receiving data arrays.
int Reduce(const short *sendBuffer, short *recvBuffer, vtkIdType length, int operation, int destProcessId)
Reduce an array to the given destination process.
int GatherV(const float *sendBuffer, float *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
GatherV is the vector variant of Gather.
int Reduce(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length, int operation, int destProcessId)
Reduce an array to the given destination process.
int Broadcast(unsigned char *data, vtkIdType length, int srcProcessId)
Broadcast sends the array in the process with id srcProcessId to all of the other processes...
#define VTK_UNSIGNED_LONG
Definition: vtkType.h:42
int Receive(unsigned long *data, vtkIdType maxlength, int remoteHandle, int tag)
Convenience methods for receiving data arrays.
int Broadcast(int *data, vtkIdType length, int srcProcessId)
Broadcast sends the array in the process with id srcProcessId to all of the other processes...
int GatherV(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
GatherV is the vector variant of Gather.
int Reduce(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, int operation, int destProcessId)
Reduce an array to the given destination process.
int AllGather(const char *sendBuffer, char *recvBuffer, vtkIdType length)
Same as gather except that the result ends up on all processes.
int Reduce(const long *sendBuffer, long *recvBuffer, vtkIdType length, int operation, int destProcessId)
Reduce an array to the given destination process.
Used to send/receive messages in a multiprocess environment.
int Reduce(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, Operation *operation, int destProcessId)
Reduce an array to the given destination process.
int AllGatherV(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Same as GatherV except that the result is placed in all processes.
int Scatter(const int *sendBuffer, int *recvBuffer, vtkIdType length, int srcProcessId)
Scatter takes an array in the process with id srcProcessId and distributes it.
general representation of visualization data
Definition: vtkDataObject.h:55
int GatherV(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
GatherV is the vector variant of Gather.
int AllReduce(const long *sendBuffer, long *recvBuffer, vtkIdType length, Operation *operation)
Same as Reduce except that the result is placed in all of the processes.
int Send(const char *data, vtkIdType length, int remoteHandle, int tag)
Convenience methods for sending data arrays.
int Reduce(const short *sendBuffer, short *recvBuffer, vtkIdType length, Operation *operation, int destProcessId)
Reduce an array to the given destination process.
int AllReduce(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, int operation)
Same as Reduce except that the result is placed in all of the processes.
int ScatterV(const long *sendBuffer, long *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
ScatterV is the vector variant of Scatter.
#define VTK_UNSIGNED_LONG_LONG
Definition: vtkType.h:53
int AllReduce(const int *sendBuffer, int *recvBuffer, vtkIdType length, int operation)
Same as Reduce except that the result is placed in all of the processes.
int Receive(unsigned short *data, vtkIdType maxlength, int remoteHandle, int tag)
Convenience methods for receiving data arrays.
int AllReduce(const short *sendBuffer, short *recvBuffer, vtkIdType length, int operation)
Same as Reduce except that the result is placed in all of the processes.
#define VTK_INT
Definition: vtkType.h:39
int Scatter(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, int srcProcessId)
Scatter takes an array in the process with id srcProcessId and distributes it.
int Broadcast(unsigned int *data, vtkIdType length, int srcProcessId)
Broadcast sends the array in the process with id srcProcessId to all of the other processes...
int Reduce(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, Operation *operation, int destProcessId)
Reduce an array to the given destination process.
Fast, simple class for representing and operating on 3D bounds.
int AllReduce(const short *sendBuffer, short *recvBuffer, vtkIdType length, Operation *operation)
Same as Reduce except that the result is placed in all of the processes.
int Reduce(const double *sendBuffer, double *recvBuffer, vtkIdType length, int operation, int destProcessId)
Reduce an array to the given destination process.
int GatherV(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
GatherV is the vector variant of Gather.
int Gather(const long *sendBuffer, long *recvBuffer, vtkIdType length, int destProcessId)
Gather collects arrays in the process with id destProcessId.