VTK  9.0.20200929
vtkMultiProcessController.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkMultiProcessController.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
49 #ifndef vtkMultiProcessController_h
50 #define vtkMultiProcessController_h
51 
52 #include "vtkObject.h"
53 #include "vtkParallelCoreModule.h" // For export macro
54 
55 #include "vtkCommunicator.h" // Needed for direct access to communicator
56 
57 class vtkBoundingBox;
58 class vtkCollection;
59 class vtkDataObject;
60 class vtkDataSet;
61 class vtkImageData;
64 class vtkOutputWindow;
65 class vtkProcessGroup;
66 class vtkProcess;
68 
69 // The type of function that gets called when new processes are initiated.
70 typedef void (*vtkProcessFunctionType)(vtkMultiProcessController* controller, void* userData);
71 
72 // The type of function that gets called when an RMI is triggered.
73 typedef void (*vtkRMIFunctionType)(
74  void* localArg, void* remoteArg, int remoteArgLength, int remoteProcessId);
75 
76 class VTKPARALLELCORE_EXPORT vtkMultiProcessController : public vtkObject
77 {
78 public:
80  void PrintSelf(ostream& os, vtkIndent indent) override;
81 
87  virtual void Initialize(int* vtkNotUsed(argc), char*** vtkNotUsed(argv)) = 0;
88 
94  virtual void Initialize(
95  int* vtkNotUsed(argc), char*** vtkNotUsed(argv), int initializedExternally) = 0;
96 
102  virtual void Finalize() = 0;
103 
109  virtual void Finalize(int finalizedExternally) = 0;
110 
112 
117  void SetNumberOfProcesses(int num);
118  int GetNumberOfProcesses();
120 
127  void SetSingleMethod(vtkProcessFunctionType, void* data);
128 
134  void SetSingleProcessObject(vtkProcess* p);
135 
141  virtual void SingleMethodExecute() = 0;
142 
149  void SetMultipleMethod(int index, vtkProcessFunctionType, void* data);
150 
156  virtual void MultipleMethodExecute() = 0;
157 
161  int GetLocalProcessId();
162 
169  static vtkMultiProcessController* GetGlobalController();
170 
176  virtual void CreateOutputWindow() = 0;
177 
189  virtual vtkMultiProcessController* CreateSubController(vtkProcessGroup* group);
190 
201  virtual vtkMultiProcessController* PartitionController(int localColor, int localKey);
202 
203  //------------------ RMIs --------------------
204 
217  virtual unsigned long AddRMI(vtkRMIFunctionType, void* localArg, int tag);
218 
222  virtual int RemoveFirstRMI(int tag);
223 
228  virtual int RemoveRMI(unsigned long id);
229 
233  virtual void RemoveRMI(vtkRMIFunctionType f, void* arg, int tag)
234  {
235  (void)f;
236  (void)arg;
237  (void)tag;
238  vtkErrorMacro("RemoveRMI Not Implemented Yet");
239  }
240 
246  virtual unsigned long AddRMICallback(vtkRMIFunctionType, void* localArg, int tag);
247 
253  virtual void RemoveAllRMICallbacks(int tag);
254 
258  virtual bool RemoveRMICallback(unsigned long id);
259 
263  void TriggerRMI(int remoteProcessId, void* arg, int argLength, int tag);
264 
269  void TriggerBreakRMIs();
270 
274  void TriggerRMI(int remoteProcessId, const char* arg, int tag)
275  {
276  this->TriggerRMI(remoteProcessId, (void*)arg, static_cast<int>(strlen(arg)) + 1, tag);
277  }
278 
282  void TriggerRMI(int remoteProcessId, int tag)
283  {
284  this->TriggerRMI(remoteProcessId, nullptr, 0, tag);
285  }
286 
288 
296  void TriggerRMIOnAllChildren(void* arg, int argLength, int tag);
297  void TriggerRMIOnAllChildren(const char* arg, int tag)
298  {
299  this->TriggerRMIOnAllChildren((void*)arg, static_cast<int>(strlen(arg)) + 1, tag);
300  }
301  void TriggerRMIOnAllChildren(int tag) { this->TriggerRMIOnAllChildren(nullptr, 0, tag); }
302  void BroadcastTriggerRMIOnAllChildren(void* arg, int argLength, int tag);
304 
306 
317  int ProcessRMIs(int reportErrors, int dont_loop = 0);
318  int ProcessRMIs();
319  int BroadcastProcessRMIs(int reportErrors, int dont_loop = 0);
321 
323 
328  vtkSetMacro(BreakFlag, int);
329  vtkGetMacro(BreakFlag, int);
331 
333 
338  vtkSetMacro(BroadcastTriggerRMI, bool);
339  vtkGetMacro(BroadcastTriggerRMI, bool);
340  vtkBooleanMacro(BroadcastTriggerRMI, bool);
342 
344 
348  vtkGetObjectMacro(Communicator, vtkCommunicator);
350 
354  static int GetBreakRMITag() { return BREAK_RMI_TAG; }
355  static int GetRMITag() { return RMI_TAG; }
356  static int GetRMIArgTag() { return RMI_ARG_TAG; }
357 
358  enum Errors
359  {
362  RMI_ARG_ERROR
363  };
364 
365  enum Consts
366  {
367  ANY_SOURCE = -1,
368  INVALID_SOURCE = -2
369  };
370 
371  enum Tags
372  {
373  RMI_TAG = 1,
374  RMI_ARG_TAG = 2,
375  BREAK_RMI_TAG = 3,
376  XML_WRITER_DATA_INFO = 4
377  };
378 
382  void Barrier();
383 
384  static void SetGlobalController(vtkMultiProcessController* controller);
385 
386  //------------------ Communication --------------------
387 
389 
396  int Send(const int* data, vtkIdType length, int remoteProcessId, int tag);
397  int Send(const short* data, vtkIdType length, int remoteProcessId, int tag);
398  int Send(const unsigned short* data, vtkIdType length, int remoteProcessId, int tag);
399  int Send(const unsigned int* data, vtkIdType length, int remoteProcessId, int tag);
400  int Send(const unsigned long* data, vtkIdType length, int remoteProcessId, int tag);
401  int Send(const long* data, vtkIdType length, int remoteProcessId, int tag);
402  int Send(const signed char* data, vtkIdType length, int remoteProcessId, int tag);
403  int Send(const char* data, vtkIdType length, int remoteProcessId, int tag);
404  int Send(const unsigned char* data, vtkIdType length, int remoteProcessId, int tag);
405  int Send(const float* data, vtkIdType length, int remoteProcessId, int tag);
406  int Send(const double* data, vtkIdType length, int remoteProcessId, int tag);
407  int Send(const long long* data, vtkIdType length, int remoteProcessId, int tag);
408  int Send(const unsigned long long* data, vtkIdType length, int remoteProcessId, int tag);
409  int Send(vtkDataObject* data, int remoteId, int tag);
410  int Send(vtkDataArray* data, int remoteId, int tag);
412 
420  int Send(const vtkMultiProcessStream& stream, int remoteId, int tag);
421 
423 
432  int Receive(int* data, vtkIdType maxlength, int remoteProcessId, int tag);
433  int Receive(unsigned int* data, vtkIdType maxlength, int remoteProcessId, int tag);
434  int Receive(short* data, vtkIdType maxlength, int remoteProcessId, int tag);
435  int Receive(unsigned short* data, vtkIdType maxlength, int remoteProcessId, int tag);
436  int Receive(long* data, vtkIdType maxlength, int remoteProcessId, int tag);
437  int Receive(unsigned long* data, vtkIdType maxlength, int remoteProcessId, int tag);
438  int Receive(char* data, vtkIdType maxlength, int remoteProcessId, int tag);
439  int Receive(unsigned char* data, vtkIdType maxlength, int remoteProcessId, int tag);
440  int Receive(signed char* data, vtkIdType maxlength, int remoteProcessId, int tag);
441  int Receive(float* data, vtkIdType maxlength, int remoteProcessId, int tag);
442  int Receive(double* data, vtkIdType maxlength, int remoteProcessId, int tag);
443  int Receive(long long* data, vtkIdType maxLength, int remoteProcessId, int tag);
444  int Receive(unsigned long long* data, vtkIdType maxLength, int remoteProcessId, int tag);
445  int Receive(vtkDataObject* data, int remoteId, int tag);
446  int Receive(vtkDataArray* data, int remoteId, int tag);
448 
452  int Receive(vtkMultiProcessStream& stream, int remoteId, int tag);
453 
454  vtkDataObject* ReceiveDataObject(int remoteId, int tag);
455 
464  vtkIdType GetCount();
465 
466  //---------------------- Collective Operations ----------------------
467 
469 
474  int Broadcast(int* data, vtkIdType length, int srcProcessId)
475  {
476  return this->Communicator->Broadcast(data, length, srcProcessId);
477  }
478  int Broadcast(unsigned int* data, vtkIdType length, int srcProcessId)
479  {
480  return this->Communicator->Broadcast(data, length, srcProcessId);
481  }
482  int Broadcast(short* data, vtkIdType length, int srcProcessId)
483  {
484  return this->Communicator->Broadcast(data, length, srcProcessId);
485  }
486  int Broadcast(unsigned short* data, vtkIdType length, int srcProcessId)
487  {
488  return this->Communicator->Broadcast(data, length, srcProcessId);
489  }
490  int Broadcast(long* data, vtkIdType length, int srcProcessId)
491  {
492  return this->Communicator->Broadcast(data, length, srcProcessId);
493  }
494  int Broadcast(unsigned long* data, vtkIdType length, int srcProcessId)
495  {
496  return this->Communicator->Broadcast(data, length, srcProcessId);
497  }
498  int Broadcast(unsigned char* data, vtkIdType length, int srcProcessId)
499  {
500  return this->Communicator->Broadcast(data, length, srcProcessId);
501  }
502  int Broadcast(char* data, vtkIdType length, int srcProcessId)
503  {
504  return this->Communicator->Broadcast(data, length, srcProcessId);
505  }
506  int Broadcast(signed char* data, vtkIdType length, int srcProcessId)
507  {
508  return this->Communicator->Broadcast(data, length, srcProcessId);
509  }
510  int Broadcast(float* data, vtkIdType length, int srcProcessId)
511  {
512  return this->Communicator->Broadcast(data, length, srcProcessId);
513  }
514  int Broadcast(double* data, vtkIdType length, int srcProcessId)
515  {
516  return this->Communicator->Broadcast(data, length, srcProcessId);
517  }
518  int Broadcast(long long* data, vtkIdType length, int srcProcessId)
519  {
520  return this->Communicator->Broadcast(data, length, srcProcessId);
521  }
522  int Broadcast(unsigned long long* data, vtkIdType length, int srcProcessId)
523  {
524  return this->Communicator->Broadcast(data, length, srcProcessId);
525  }
526  int Broadcast(vtkDataObject* data, int srcProcessId)
527  {
528  return this->Communicator->Broadcast(data, srcProcessId);
529  }
530  int Broadcast(vtkDataArray* data, int srcProcessId)
531  {
532  return this->Communicator->Broadcast(data, srcProcessId);
533  }
535 
536  int Broadcast(vtkMultiProcessStream& stream, int srcProcessId)
537  {
538  return this->Communicator->Broadcast(stream, srcProcessId);
539  }
540 
542 
551  int Gather(const int* sendBuffer, int* recvBuffer, vtkIdType length, int destProcessId)
552  {
553  return this->Communicator->Gather(sendBuffer, recvBuffer, length, destProcessId);
554  }
555  int Gather(
556  const unsigned int* sendBuffer, unsigned int* recvBuffer, vtkIdType length, int destProcessId)
557  {
558  return this->Communicator->Gather(sendBuffer, recvBuffer, length, destProcessId);
559  }
560  int Gather(const short* sendBuffer, short* recvBuffer, vtkIdType length, int destProcessId)
561  {
562  return this->Communicator->Gather(sendBuffer, recvBuffer, length, destProcessId);
563  }
564  int Gather(const unsigned short* sendBuffer, unsigned short* recvBuffer, vtkIdType length,
565  int destProcessId)
566  {
567  return this->Communicator->Gather(sendBuffer, recvBuffer, length, destProcessId);
568  }
569  int Gather(const long* sendBuffer, long* recvBuffer, vtkIdType length, int destProcessId)
570  {
571  return this->Communicator->Gather(sendBuffer, recvBuffer, length, destProcessId);
572  }
573  int Gather(
574  const unsigned long* sendBuffer, unsigned long* recvBuffer, vtkIdType length, int destProcessId)
575  {
576  return this->Communicator->Gather(sendBuffer, recvBuffer, length, destProcessId);
577  }
578  int Gather(
579  const unsigned char* sendBuffer, unsigned char* recvBuffer, vtkIdType length, int destProcessId)
580  {
581  return this->Communicator->Gather(sendBuffer, recvBuffer, length, destProcessId);
582  }
583  int Gather(const char* sendBuffer, char* recvBuffer, vtkIdType length, int destProcessId)
584  {
585  return this->Communicator->Gather(sendBuffer, recvBuffer, length, destProcessId);
586  }
587  int Gather(
588  const signed char* sendBuffer, signed char* recvBuffer, vtkIdType length, int destProcessId)
589  {
590  return this->Communicator->Gather(sendBuffer, recvBuffer, length, destProcessId);
591  }
592  int Gather(const float* sendBuffer, float* recvBuffer, vtkIdType length, int destProcessId)
593  {
594  return this->Communicator->Gather(sendBuffer, recvBuffer, length, destProcessId);
595  }
596  int Gather(const double* sendBuffer, double* recvBuffer, vtkIdType length, int destProcessId)
597  {
598  return this->Communicator->Gather(sendBuffer, recvBuffer, length, destProcessId);
599  }
600  int Gather(
601  const long long* sendBuffer, long long* recvBuffer, vtkIdType length, int destProcessId)
602  {
603  return this->Communicator->Gather(sendBuffer, recvBuffer, length, destProcessId);
604  }
605  int Gather(const unsigned long long* sendBuffer, unsigned long long* recvBuffer, vtkIdType length,
606  int destProcessId)
607  {
608  return this->Communicator->Gather(sendBuffer, recvBuffer, length, destProcessId);
609  }
610  int Gather(vtkDataArray* sendBuffer, vtkDataArray* recvBuffer, int destProcessId)
611  {
612  return this->Communicator->Gather(sendBuffer, recvBuffer, destProcessId);
613  }
615 
629  int destProcessId)
630  {
631  return this->Communicator->Gather(sendBuffer, recvBuffer, destProcessId);
632  }
633 
643  int Gather(const vtkMultiProcessStream& sendBuffer,
644  std::vector<vtkMultiProcessStream>& recvBuffer, int destProcessId)
645  {
646  return this->Communicator->Gather(sendBuffer, recvBuffer, destProcessId);
647  }
648 
650 
661  int GatherV(const int* sendBuffer, int* recvBuffer, vtkIdType sendLength, vtkIdType* recvLengths,
662  vtkIdType* offsets, int destProcessId)
663  {
664  return this->Communicator->GatherV(
665  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, destProcessId);
666  }
667  int GatherV(const unsigned int* sendBuffer, unsigned int* recvBuffer, vtkIdType sendLength,
668  vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
669  {
670  return this->Communicator->GatherV(
671  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, destProcessId);
672  }
673  int GatherV(const short* sendBuffer, short* recvBuffer, vtkIdType sendLength,
674  vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
675  {
676  return this->Communicator->GatherV(
677  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, destProcessId);
678  }
679  int GatherV(const unsigned short* sendBuffer, unsigned short* recvBuffer, vtkIdType sendLength,
680  vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
681  {
682  return this->Communicator->GatherV(
683  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, destProcessId);
684  }
685  int GatherV(const long* sendBuffer, long* recvBuffer, vtkIdType sendLength,
686  vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
687  {
688  return this->Communicator->GatherV(
689  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, destProcessId);
690  }
691  int GatherV(const unsigned long* sendBuffer, unsigned long* recvBuffer, vtkIdType sendLength,
692  vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
693  {
694  return this->Communicator->GatherV(
695  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, destProcessId);
696  }
697  int GatherV(const unsigned char* sendBuffer, unsigned char* recvBuffer, vtkIdType sendLength,
698  vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
699  {
700  return this->Communicator->GatherV(
701  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, destProcessId);
702  }
703  int GatherV(const char* sendBuffer, char* recvBuffer, vtkIdType sendLength,
704  vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
705  {
706  return this->Communicator->GatherV(
707  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, destProcessId);
708  }
709  int GatherV(const signed char* sendBuffer, signed char* recvBuffer, vtkIdType sendLength,
710  vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
711  {
712  return this->Communicator->GatherV(
713  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, destProcessId);
714  }
715  int GatherV(const float* sendBuffer, float* recvBuffer, vtkIdType sendLength,
716  vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
717  {
718  return this->Communicator->GatherV(
719  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, destProcessId);
720  }
721  int GatherV(const double* sendBuffer, double* recvBuffer, vtkIdType sendLength,
722  vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
723  {
724  return this->Communicator->GatherV(
725  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, destProcessId);
726  }
727  int GatherV(const long long* sendBuffer, long long* recvBuffer, vtkIdType sendLength,
728  vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
729  {
730  return this->Communicator->GatherV(
731  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, destProcessId);
732  }
733  int GatherV(const unsigned long long* sendBuffer, unsigned long long* recvBuffer,
734  vtkIdType sendLength, vtkIdType* recvLengths, vtkIdType* offsets, int destProcessId)
735  {
736  return this->Communicator->GatherV(
737  sendBuffer, recvBuffer, sendLength, recvLengths, offsets, destProcessId);
738  }
740 
741  int GatherV(vtkDataArray* sendBuffer, vtkDataArray* recvBuffer, vtkIdType* recvLengths,
742  vtkIdType* offsets, int destProcessId)
743  {
744  return this->Communicator->GatherV(sendBuffer, recvBuffer, recvLengths, offsets, destProcessId);
745  }
746  int GatherV(vtkDataArray* sendBuffer, vtkDataArray* recvBuffer, vtkIdTypeArray* recvLengths,
747  vtkIdTypeArray* offsets, int destProcessId)
748  {
749  return this->Communicator->GatherV(sendBuffer, recvBuffer, recvLengths, offsets, destProcessId);
750  }
751 
753 
759  int GatherV(vtkDataArray* sendBuffer, vtkDataArray* recvBuffer, int destProcessId)
760  {
761  return this->Communicator->GatherV(sendBuffer, recvBuffer, destProcessId);
762  }
763  int GatherV(vtkDataObject* sendData, vtkSmartPointer<vtkDataObject>* recvData, int destProcessId)
764  {
765  return this->Communicator->GatherV(sendData, recvData, destProcessId);
766  }
768 
770 
777  int Scatter(const int* sendBuffer, int* recvBuffer, vtkIdType length, int srcProcessId)
778  {
779  return this->Communicator->Scatter(sendBuffer, recvBuffer, length, srcProcessId);
780  }
781  int Scatter(
782  const unsigned int* sendBuffer, unsigned int* recvBuffer, vtkIdType length, int srcProcessId)
783  {
784  return this->Communicator->Scatter(sendBuffer, recvBuffer, length, srcProcessId);
785  }
786  int Scatter(const short* sendBuffer, short* recvBuffer, vtkIdType length, int srcProcessId)
787  {
788  return this->Communicator->Scatter(sendBuffer, recvBuffer, length, srcProcessId);
789  }
790  int Scatter(const unsigned short* sendBuffer, unsigned short* recvBuffer, vtkIdType length,
791  int srcProcessId)
792  {
793  return this->Communicator->Scatter(sendBuffer, recvBuffer, length, srcProcessId);
794  }
795  int Scatter(const long* sendBuffer, long* recvBuffer, vtkIdType length, int srcProcessId)
796  {
797  return this->Communicator->Scatter(sendBuffer, recvBuffer, length, srcProcessId);
798  }
799  int Scatter(
800  const unsigned long* sendBuffer, unsigned long* recvBuffer, vtkIdType length, int srcProcessId)
801  {
802  return this->Communicator->Scatter(sendBuffer, recvBuffer, length, srcProcessId);
803  }
804  int Scatter(
805  const unsigned char* sendBuffer, unsigned char* recvBuffer, vtkIdType length, int srcProcessId)
806  {
807  return this->Communicator->Scatter(sendBuffer, recvBuffer, length, srcProcessId);
808  }
809  int Scatter(const char* sendBuffer, char* recvBuffer, vtkIdType length, int srcProcessId)
810  {
811  return this->Communicator->Scatter(sendBuffer, recvBuffer, length, srcProcessId);
812  }
813  int Scatter(
814  const signed char* sendBuffer, signed char* recvBuffer, vtkIdType length, int srcProcessId)
815  {
816  return this->Communicator->Scatter(sendBuffer, recvBuffer, length, srcProcessId);
817  }
818  int Scatter(const float* sendBuffer, float* recvBuffer, vtkIdType length, int srcProcessId)
819  {
820  return this->Communicator->Scatter(sendBuffer, recvBuffer, length, srcProcessId);
821  }
822  int Scatter(const double* sendBuffer, double* recvBuffer, vtkIdType length, int srcProcessId)
823  {
824  return this->Communicator->Scatter(sendBuffer, recvBuffer, length, srcProcessId);
825  }
826  int Scatter(
827  const long long* sendBuffer, long long* recvBuffer, vtkIdType length, int srcProcessId)
828  {
829  return this->Communicator->Scatter(sendBuffer, recvBuffer, length, srcProcessId);
830  }
831  int Scatter(const unsigned long long* sendBuffer, unsigned long long* recvBuffer,
832  vtkIdType length, int srcProcessId)
833  {
834  return this->Communicator->Scatter(sendBuffer, recvBuffer, length, srcProcessId);
835  }
836  int Scatter(vtkDataArray* sendBuffer, vtkDataArray* recvBuffer, int srcProcessId)
837  {
838  return this->Communicator->Scatter(sendBuffer, recvBuffer, srcProcessId);
839  }
841 
843 
850  int ScatterV(const int* sendBuffer, int* recvBuffer, vtkIdType* sendLengths, vtkIdType* offsets,
851  vtkIdType recvLength, int srcProcessId)
852  {
853  return this->Communicator->ScatterV(
854  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, srcProcessId);
855  }
856  int ScatterV(const unsigned int* sendBuffer, unsigned int* recvBuffer, vtkIdType* sendLengths,
857  vtkIdType* offsets, vtkIdType recvLength, int srcProcessId)
858  {
859  return this->Communicator->ScatterV(
860  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, srcProcessId);
861  }
862  int ScatterV(const short* sendBuffer, short* recvBuffer, vtkIdType* sendLengths,
863  vtkIdType* offsets, vtkIdType recvLength, int srcProcessId)
864  {
865  return this->Communicator->ScatterV(
866  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, srcProcessId);
867  }
868  int ScatterV(const unsigned short* sendBuffer, unsigned short* recvBuffer, vtkIdType* sendLengths,
869  vtkIdType* offsets, vtkIdType recvLength, int srcProcessId)
870  {
871  return this->Communicator->ScatterV(
872  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, srcProcessId);
873  }
874  int ScatterV(const long* sendBuffer, long* recvBuffer, vtkIdType* sendLengths, vtkIdType* offsets,
875  vtkIdType recvLength, int srcProcessId)
876  {
877  return this->Communicator->ScatterV(
878  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, srcProcessId);
879  }
880  int ScatterV(const unsigned long* sendBuffer, unsigned long* recvBuffer, vtkIdType* sendLengths,
881  vtkIdType* offsets, vtkIdType recvLength, int srcProcessId)
882  {
883  return this->Communicator->ScatterV(
884  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, srcProcessId);
885  }
886  int ScatterV(const unsigned char* sendBuffer, unsigned char* recvBuffer, vtkIdType* sendLengths,
887  vtkIdType* offsets, vtkIdType recvLength, int srcProcessId)
888  {
889  return this->Communicator->ScatterV(
890  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, srcProcessId);
891  }
892  int ScatterV(const char* sendBuffer, char* recvBuffer, vtkIdType* sendLengths, vtkIdType* offsets,
893  vtkIdType recvLength, int srcProcessId)
894  {
895  return this->Communicator->ScatterV(
896  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, srcProcessId);
897  }
898  int ScatterV(const signed char* sendBuffer, signed char* recvBuffer, vtkIdType* sendLengths,
899  vtkIdType* offsets, vtkIdType recvLength, int srcProcessId)
900  {
901  return this->Communicator->ScatterV(
902  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, srcProcessId);
903  }
904  int ScatterV(const float* sendBuffer, float* recvBuffer, vtkIdType* sendLengths,
905  vtkIdType* offsets, vtkIdType recvLength, int srcProcessId)
906  {
907  return this->Communicator->ScatterV(
908  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, srcProcessId);
909  }
910  int ScatterV(const double* sendBuffer, double* recvBuffer, vtkIdType* sendLengths,
911  vtkIdType* offsets, vtkIdType recvLength, int srcProcessId)
912  {
913  return this->Communicator->ScatterV(
914  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, srcProcessId);
915  }
916  int ScatterV(const long long* sendBuffer, long long* recvBuffer, vtkIdType* sendLengths,
917  vtkIdType* offsets, vtkIdType recvLength, int srcProcessId)
918  {
919  return this->Communicator->ScatterV(
920  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, srcProcessId);
921  }
922  int ScatterV(const unsigned long long* sendBuffer, unsigned long long* recvBuffer,
923  vtkIdType* sendLengths, vtkIdType* offsets, vtkIdType recvLength, int srcProcessId)
924  {
925  return this->Communicator->ScatterV(
926  sendBuffer, recvBuffer, sendLengths, offsets, recvLength, srcProcessId);
927  }
929 
931 
934  int AllGather(const int* sendBuffer, int* recvBuffer, vtkIdType length)
935  {
936  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
937  }
938  int AllGather(const unsigned int* sendBuffer, unsigned int* recvBuffer, vtkIdType length)
939  {
940  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
941  }
942  int AllGather(const short* sendBuffer, short* recvBuffer, vtkIdType length)
943  {
944  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
945  }
946  int AllGather(const unsigned short* sendBuffer, unsigned short* recvBuffer, vtkIdType length)
947  {
948  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
949  }
950  int AllGather(const long* sendBuffer, long* recvBuffer, vtkIdType length)
951  {
952  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
953  }
954  int AllGather(const unsigned long* sendBuffer, unsigned long* recvBuffer, vtkIdType length)
955  {
956  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
957  }
958  int AllGather(const unsigned char* sendBuffer, unsigned char* recvBuffer, vtkIdType length)
959  {
960  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
961  }
962  int AllGather(const char* sendBuffer, char* recvBuffer, vtkIdType length)
963  {
964  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
965  }
966  int AllGather(const signed char* sendBuffer, signed char* recvBuffer, vtkIdType length)
967  {
968  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
969  }
970  int AllGather(const float* sendBuffer, float* recvBuffer, vtkIdType length)
971  {
972  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
973  }
974  int AllGather(const double* sendBuffer, double* recvBuffer, vtkIdType length)
975  {
976  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
977  }
978  int AllGather(const long long* sendBuffer, long long* recvBuffer, vtkIdType length)
979  {
980  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
981  }
983  const unsigned long long* sendBuffer, unsigned long long* recvBuffer, vtkIdType length)
984  {
985  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
986  }
987  int AllGather(vtkDataArray* sendBuffer, vtkDataArray* recvBuffer)
988  {
989  return this->Communicator->AllGather(sendBuffer, recvBuffer);
990  }
992 
1001  const vtkMultiProcessStream& sendBuffer, std::vector<vtkMultiProcessStream>& recvBuffer)
1002  {
1003  return this->Communicator->AllGather(sendBuffer, recvBuffer);
1004  }
1005 
1007 
1010  int AllGatherV(const int* sendBuffer, int* recvBuffer, vtkIdType sendLength,
1011  vtkIdType* recvLengths, vtkIdType* offsets)
1012  {
1013  return this->Communicator->AllGatherV(sendBuffer, recvBuffer, sendLength, recvLengths, offsets);
1014  }
1015  int AllGatherV(const unsigned int* sendBuffer, unsigned int* recvBuffer, vtkIdType sendLength,
1016  vtkIdType* recvLengths, vtkIdType* offsets)
1017  {
1018  return this->Communicator->AllGatherV(sendBuffer, recvBuffer, sendLength, recvLengths, offsets);
1019  }
1020  int AllGatherV(const short* sendBuffer, short* recvBuffer, vtkIdType sendLength,
1021  vtkIdType* recvLengths, vtkIdType* offsets)
1022  {
1023  return this->Communicator->AllGatherV(sendBuffer, recvBuffer, sendLength, recvLengths, offsets);
1024  }
1025  int AllGatherV(const unsigned short* sendBuffer, unsigned short* recvBuffer, vtkIdType sendLength,
1026  vtkIdType* recvLengths, vtkIdType* offsets)
1027  {
1028  return this->Communicator->AllGatherV(sendBuffer, recvBuffer, sendLength, recvLengths, offsets);
1029  }
1030  int AllGatherV(const long* sendBuffer, long* recvBuffer, vtkIdType sendLength,
1031  vtkIdType* recvLengths, vtkIdType* offsets)
1032  {
1033  return this->Communicator->AllGatherV(sendBuffer, recvBuffer, sendLength, recvLengths, offsets);
1034  }
1035  int AllGatherV(const unsigned long* sendBuffer, unsigned long* recvBuffer, vtkIdType sendLength,
1036  vtkIdType* recvLengths, vtkIdType* offsets)
1037  {
1038  return this->Communicator->AllGatherV(sendBuffer, recvBuffer, sendLength, recvLengths, offsets);
1039  }
1040  int AllGatherV(const unsigned char* sendBuffer, unsigned char* recvBuffer, vtkIdType sendLength,
1041  vtkIdType* recvLengths, vtkIdType* offsets)
1042  {
1043  return this->Communicator->AllGatherV(sendBuffer, recvBuffer, sendLength, recvLengths, offsets);
1044  }
1045  int AllGatherV(const char* sendBuffer, char* recvBuffer, vtkIdType sendLength,
1046  vtkIdType* recvLengths, vtkIdType* offsets)
1047  {
1048  return this->Communicator->AllGatherV(sendBuffer, recvBuffer, sendLength, recvLengths, offsets);
1049  }
1050  int AllGatherV(const signed char* sendBuffer, signed char* recvBuffer, vtkIdType sendLength,
1051  vtkIdType* recvLengths, vtkIdType* offsets)
1052  {
1053  return this->Communicator->AllGatherV(sendBuffer, recvBuffer, sendLength, recvLengths, offsets);
1054  }
1055  int AllGatherV(const float* sendBuffer, float* recvBuffer, vtkIdType sendLength,
1056  vtkIdType* recvLengths, vtkIdType* offsets)
1057  {
1058  return this->Communicator->AllGatherV(sendBuffer, recvBuffer, sendLength, recvLengths, offsets);
1059  }
1060  int AllGatherV(const double* sendBuffer, double* recvBuffer, vtkIdType sendLength,
1061  vtkIdType* recvLengths, vtkIdType* offsets)
1062  {
1063  return this->Communicator->AllGatherV(sendBuffer, recvBuffer, sendLength, recvLengths, offsets);
1064  }
1065  int AllGatherV(const long long* sendBuffer, long long* recvBuffer, vtkIdType sendLength,
1066  vtkIdType* recvLengths, vtkIdType* offsets)
1067  {
1068  return this->Communicator->AllGatherV(sendBuffer, recvBuffer, sendLength, recvLengths, offsets);
1069  }
1070  int AllGatherV(const unsigned long long* sendBuffer, unsigned long long* recvBuffer,
1071  vtkIdType sendLength, vtkIdType* recvLengths, vtkIdType* offsets)
1072  {
1073  return this->Communicator->AllGatherV(sendBuffer, recvBuffer, sendLength, recvLengths, offsets);
1074  }
1076  vtkDataArray* sendBuffer, vtkDataArray* recvBuffer, vtkIdType* recvLengths, vtkIdType* offsets)
1077  {
1078  return this->Communicator->AllGatherV(sendBuffer, recvBuffer, recvLengths, offsets);
1079  }
1081 
1088  int AllGatherV(vtkDataArray* sendBuffer, vtkDataArray* recvBuffer)
1089  {
1090  return this->Communicator->AllGatherV(sendBuffer, recvBuffer);
1091  }
1092 
1094 
1099  int Reduce(
1100  const int* sendBuffer, int* recvBuffer, vtkIdType length, int operation, int destProcessId)
1101  {
1102  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1103  }
1104  int Reduce(const unsigned int* sendBuffer, unsigned int* recvBuffer, vtkIdType length,
1105  int operation, int destProcessId)
1106  {
1107  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1108  }
1109  int Reduce(
1110  const short* sendBuffer, short* recvBuffer, vtkIdType length, int operation, int destProcessId)
1111  {
1112  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1113  }
1114  int Reduce(const unsigned short* sendBuffer, unsigned short* recvBuffer, vtkIdType length,
1115  int operation, int destProcessId)
1116  {
1117  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1118  }
1119  int Reduce(
1120  const long* sendBuffer, long* recvBuffer, vtkIdType length, int operation, int destProcessId)
1121  {
1122  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1123  }
1124  int Reduce(const unsigned long* sendBuffer, unsigned long* recvBuffer, vtkIdType length,
1125  int operation, int destProcessId)
1126  {
1127  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1128  }
1129  int Reduce(const unsigned char* sendBuffer, unsigned char* recvBuffer, vtkIdType length,
1130  int operation, int destProcessId)
1131  {
1132  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1133  }
1134  int Reduce(
1135  const char* sendBuffer, char* recvBuffer, vtkIdType length, int operation, int destProcessId)
1136  {
1137  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1138  }
1139  int Reduce(const signed char* sendBuffer, signed char* recvBuffer, vtkIdType length,
1140  int operation, int destProcessId)
1141  {
1142  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1143  }
1144  int Reduce(
1145  const float* sendBuffer, float* recvBuffer, vtkIdType length, int operation, int destProcessId)
1146  {
1147  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1148  }
1149  int Reduce(const double* sendBuffer, double* recvBuffer, vtkIdType length, int operation,
1150  int destProcessId)
1151  {
1152  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1153  }
1154  int Reduce(const long long* sendBuffer, long long* recvBuffer, vtkIdType length, int operation,
1155  int destProcessId)
1156  {
1157  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1158  }
1159  int Reduce(const unsigned long long* sendBuffer, unsigned long long* recvBuffer, vtkIdType length,
1160  int operation, int destProcessId)
1161  {
1162  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1163  }
1164  int Reduce(vtkDataArray* sendBuffer, vtkDataArray* recvBuffer, int operation, int destProcessId)
1165  {
1166  return this->Communicator->Reduce(sendBuffer, recvBuffer, operation, destProcessId);
1167  }
1169 
1171 
1175  int Reduce(const int* sendBuffer, int* recvBuffer, vtkIdType length,
1176  vtkCommunicator::Operation* operation, int destProcessId)
1177  {
1178  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1179  }
1180  int Reduce(const unsigned int* sendBuffer, unsigned int* recvBuffer, vtkIdType length,
1181  vtkCommunicator::Operation* operation, int destProcessId)
1182  {
1183  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1184  }
1185  int Reduce(const short* sendBuffer, short* recvBuffer, vtkIdType length,
1186  vtkCommunicator::Operation* operation, int destProcessId)
1187  {
1188  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1189  }
1190  int Reduce(const unsigned short* sendBuffer, unsigned short* recvBuffer, vtkIdType length,
1191  vtkCommunicator::Operation* operation, int destProcessId)
1192  {
1193  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1194  }
1195  int Reduce(const long* sendBuffer, long* recvBuffer, vtkIdType length,
1196  vtkCommunicator::Operation* operation, int destProcessId)
1197  {
1198  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1199  }
1200  int Reduce(const unsigned long* sendBuffer, unsigned long* recvBuffer, vtkIdType length,
1201  vtkCommunicator::Operation* operation, int destProcessId)
1202  {
1203  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1204  }
1205  int Reduce(const unsigned char* sendBuffer, unsigned char* recvBuffer, vtkIdType length,
1206  vtkCommunicator::Operation* operation, int destProcessId)
1207  {
1208  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1209  }
1210  int Reduce(const char* sendBuffer, char* recvBuffer, vtkIdType length,
1211  vtkCommunicator::Operation* operation, int destProcessId)
1212  {
1213  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1214  }
1215  int Reduce(const signed char* sendBuffer, signed char* recvBuffer, vtkIdType length,
1216  vtkCommunicator::Operation* operation, int destProcessId)
1217  {
1218  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1219  }
1220  int Reduce(const float* sendBuffer, float* recvBuffer, vtkIdType length,
1221  vtkCommunicator::Operation* operation, int destProcessId)
1222  {
1223  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1224  }
1225  int Reduce(const double* sendBuffer, double* recvBuffer, vtkIdType length,
1226  vtkCommunicator::Operation* operation, int destProcessId)
1227  {
1228  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1229  }
1230  int Reduce(const long long* sendBuffer, long long* recvBuffer, vtkIdType length,
1231  vtkCommunicator::Operation* operation, int destProcessId)
1232  {
1233  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1234  }
1235  int Reduce(const unsigned long long* sendBuffer, unsigned long long* recvBuffer, vtkIdType length,
1236  vtkCommunicator::Operation* operation, int destProcessId)
1237  {
1238  return this->Communicator->Reduce(sendBuffer, recvBuffer, length, operation, destProcessId);
1239  }
1240  int Reduce(vtkDataArray* sendBuffer, vtkDataArray* recvBuffer,
1241  vtkCommunicator::Operation* operation, int destProcessId)
1242  {
1243  return this->Communicator->Reduce(sendBuffer, recvBuffer, operation, destProcessId);
1244  }
1246 
1248 
1251  int AllReduce(const int* sendBuffer, int* recvBuffer, vtkIdType length, int operation)
1252  {
1253  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1254  }
1256  const unsigned int* sendBuffer, unsigned int* recvBuffer, vtkIdType length, int operation)
1257  {
1258  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1259  }
1260  int AllReduce(const short* sendBuffer, short* recvBuffer, vtkIdType length, int operation)
1261  {
1262  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1263  }
1265  const unsigned short* sendBuffer, unsigned short* recvBuffer, vtkIdType length, int operation)
1266  {
1267  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1268  }
1269  int AllReduce(const long* sendBuffer, long* recvBuffer, vtkIdType length, int operation)
1270  {
1271  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1272  }
1274  const unsigned long* sendBuffer, unsigned long* recvBuffer, vtkIdType length, int operation)
1275  {
1276  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1277  }
1279  const unsigned char* sendBuffer, unsigned char* recvBuffer, vtkIdType length, int operation)
1280  {
1281  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1282  }
1283  int AllReduce(const char* sendBuffer, char* recvBuffer, vtkIdType length, int operation)
1284  {
1285  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1286  }
1288  const signed char* sendBuffer, signed char* recvBuffer, vtkIdType length, int operation)
1289  {
1290  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1291  }
1292  int AllReduce(const float* sendBuffer, float* recvBuffer, vtkIdType length, int operation)
1293  {
1294  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1295  }
1296  int AllReduce(const double* sendBuffer, double* recvBuffer, vtkIdType length, int operation)
1297  {
1298  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1299  }
1300  int AllReduce(const long long* sendBuffer, long long* recvBuffer, vtkIdType length, int operation)
1301  {
1302  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1303  }
1304  int AllReduce(const unsigned long long* sendBuffer, unsigned long long* recvBuffer,
1305  vtkIdType length, int operation)
1306  {
1307  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1308  }
1309  int AllReduce(vtkDataArray* sendBuffer, vtkDataArray* recvBuffer, int operation)
1310  {
1311  return this->Communicator->AllReduce(sendBuffer, recvBuffer, operation);
1312  }
1314 
1316  const int* sendBuffer, int* recvBuffer, vtkIdType length, vtkCommunicator::Operation* operation)
1317  {
1318  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1319  }
1320  int AllReduce(const unsigned int* sendBuffer, unsigned int* recvBuffer, vtkIdType length,
1321  vtkCommunicator::Operation* operation)
1322  {
1323  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1324  }
1325  int AllReduce(const short* sendBuffer, short* recvBuffer, vtkIdType length,
1326  vtkCommunicator::Operation* operation)
1327  {
1328  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1329  }
1330  int AllReduce(const unsigned short* sendBuffer, unsigned short* recvBuffer, vtkIdType length,
1331  vtkCommunicator::Operation* operation)
1332  {
1333  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1334  }
1335  int AllReduce(const long* sendBuffer, long* recvBuffer, vtkIdType length,
1336  vtkCommunicator::Operation* operation)
1337  {
1338  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1339  }
1340  int AllReduce(const unsigned long* sendBuffer, unsigned long* recvBuffer, vtkIdType length,
1341  vtkCommunicator::Operation* operation)
1342  {
1343  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1344  }
1345  int AllReduce(const unsigned char* sendBuffer, unsigned char* recvBuffer, vtkIdType length,
1346  vtkCommunicator::Operation* operation)
1347  {
1348  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1349  }
1350  int AllReduce(const char* sendBuffer, char* recvBuffer, vtkIdType length,
1351  vtkCommunicator::Operation* operation)
1352  {
1353  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1354  }
1355  int AllReduce(const signed char* sendBuffer, signed char* recvBuffer, vtkIdType length,
1356  vtkCommunicator::Operation* operation)
1357  {
1358  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1359  }
1360  int AllReduce(const float* sendBuffer, float* recvBuffer, vtkIdType length,
1361  vtkCommunicator::Operation* operation)
1362  {
1363  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1364  }
1365  int AllReduce(const double* sendBuffer, double* recvBuffer, vtkIdType length,
1366  vtkCommunicator::Operation* operation)
1367  {
1368  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1369  }
1370  int AllReduce(const long long* sendBuffer, long long* recvBuffer, vtkIdType length,
1371  vtkCommunicator::Operation* operation)
1372  {
1373  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1374  }
1375  int AllReduce(const unsigned long long* sendBuffer, unsigned long long* recvBuffer,
1377  {
1378  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length, operation);
1379  }
1381  vtkDataArray* sendBuffer, vtkDataArray* recvBuffer, vtkCommunicator::Operation* operation)
1382  {
1383  return this->Communicator->AllReduce(sendBuffer, recvBuffer, operation);
1384  }
1385 
1387 
1390  int Reduce(const vtkBoundingBox& sendBuffer, vtkBoundingBox& recvBuffer, int destProcessId);
1391  int AllReduce(const vtkBoundingBox& sendBuffer, vtkBoundingBox& recvBuffer);
1393 
1395 
1398  int Reduce(
1399  vtkDataArraySelection* sendBuffer, vtkDataArraySelection* recvBuffer, int destProcessId);
1400  int AllReduce(vtkDataArraySelection* sendBuffer, vtkDataArraySelection* recvBuffer);
1402 
1403  // Internally implemented RMI to break the process loop.
1404 
1405 protected:
1407  ~vtkMultiProcessController() override;
1408 
1414  virtual void TriggerRMIInternal(
1415  int remoteProcessId, void* arg, int argLength, int rmiTag, bool propagate);
1416 
1418  void* SingleData;
1419 
1420  void GetMultipleMethod(int index, vtkProcessFunctionType& func, void*& data);
1421 
1422  // This is a flag that can be used by the ports to break
1423  // their update loop. (same as ProcessRMIs)
1425 
1426  void ProcessRMI(int remoteProcessId, void* arg, int argLength, int rmiTag);
1427 
1428  // This method implements "GetGlobalController".
1429  // It needs to be virtual and static.
1430  virtual vtkMultiProcessController* GetLocalController();
1431 
1432  // This flag can force deep copies during send.
1434 
1435  // This flag can be used to indicate that an MPI Broadcast will be used
1436  // when calling TriggerRMIOnAllChildren(), instead of the binary tree
1437  // propagation of the data to the satellite ranks from rank 0.
1439 
1441 
1442  // Note that since the communicators can be created differently
1443  // depending on the type of controller, the subclasses are
1444  // responsible of deleting them.
1446 
1447  // Communicator which is a copy of the current user
1448  // level communicator except the context; i.e. even if the tags
1449  // are the same, the RMI messages will not interfere with user
1450  // level messages.
1451  // Note that since the communicators can be created differently
1452  // depending on the type of controller, the subclasses are
1453  // responsible of deleting them.
1455 
1456 private:
1458  void operator=(const vtkMultiProcessController&) = delete;
1459 
1460  unsigned long RMICount;
1461 
1462  class vtkInternal;
1463  vtkInternal* Internal;
1464 };
1465 
1466 inline int vtkMultiProcessController::Send(vtkDataObject* data, int remoteProcessId, int tag)
1467 {
1468  if (this->Communicator)
1469  {
1470  return this->Communicator->Send(data, remoteProcessId, tag);
1471  }
1472  else
1473  {
1474  return 0;
1475  }
1476 }
1477 
1478 inline int vtkMultiProcessController::Send(vtkDataArray* data, int remoteProcessId, int tag)
1479 {
1480  if (this->Communicator)
1481  {
1482  return this->Communicator->Send(data, remoteProcessId, tag);
1483  }
1484  else
1485  {
1486  return 0;
1487  }
1488 }
1489 
1491  const int* data, vtkIdType length, int remoteProcessId, int tag)
1492 {
1493  if (this->Communicator)
1494  {
1495  return this->Communicator->Send(data, length, remoteProcessId, tag);
1496  }
1497  else
1498  {
1499  return 0;
1500  }
1501 }
1502 
1504  const short* data, vtkIdType length, int remoteProcessId, int tag)
1505 {
1506  if (this->Communicator)
1507  {
1508  return this->Communicator->Send(data, length, remoteProcessId, tag);
1509  }
1510  else
1511  {
1512  return 0;
1513  }
1514 }
1515 
1517  const unsigned short* data, vtkIdType length, int remoteProcessId, int tag)
1518 {
1519  if (this->Communicator)
1520  {
1521  return this->Communicator->Send(data, length, remoteProcessId, tag);
1522  }
1523  else
1524  {
1525  return 0;
1526  }
1527 }
1528 
1530  const unsigned int* data, vtkIdType length, int remoteProcessId, int tag)
1531 {
1532  if (this->Communicator)
1533  {
1534  return this->Communicator->Send(data, length, remoteProcessId, tag);
1535  }
1536  else
1537  {
1538  return 0;
1539  }
1540 }
1541 
1543  const unsigned long* data, vtkIdType length, int remoteProcessId, int tag)
1544 {
1545  if (this->Communicator)
1546  {
1547  return this->Communicator->Send(data, length, remoteProcessId, tag);
1548  }
1549  else
1550  {
1551  return 0;
1552  }
1553 }
1554 
1556  const long* data, vtkIdType length, int remoteProcessId, int tag)
1557 {
1558  if (this->Communicator)
1559  {
1560  return this->Communicator->Send(data, length, remoteProcessId, tag);
1561  }
1562  else
1563  {
1564  return 0;
1565  }
1566 }
1567 
1569  const signed char* data, vtkIdType length, int remoteProcessId, int tag)
1570 {
1571  if (this->Communicator)
1572  {
1573  return this->Communicator->Send(data, length, remoteProcessId, tag);
1574  }
1575  else
1576  {
1577  return 0;
1578  }
1579 }
1580 
1582  const char* data, vtkIdType length, int remoteProcessId, int tag)
1583 {
1584  if (this->Communicator)
1585  {
1586  return this->Communicator->Send(data, length, remoteProcessId, tag);
1587  }
1588  else
1589  {
1590  return 0;
1591  }
1592 }
1593 
1595  const unsigned char* data, vtkIdType length, int remoteProcessId, int tag)
1596 {
1597  if (this->Communicator)
1598  {
1599  return this->Communicator->Send(data, length, remoteProcessId, tag);
1600  }
1601  else
1602  {
1603  return 0;
1604  }
1605 }
1606 
1608  const float* data, vtkIdType length, int remoteProcessId, int tag)
1609 {
1610  if (this->Communicator)
1611  {
1612  return this->Communicator->Send(data, length, remoteProcessId, tag);
1613  }
1614  else
1615  {
1616  return 0;
1617  }
1618 }
1619 
1621  const double* data, vtkIdType length, int remoteProcessId, int tag)
1622 {
1623  if (this->Communicator)
1624  {
1625  return this->Communicator->Send(data, length, remoteProcessId, tag);
1626  }
1627  else
1628  {
1629  return 0;
1630  }
1631 }
1632 
1634  const long long* data, vtkIdType length, int remoteProcessId, int tag)
1635 {
1636  if (this->Communicator)
1637  {
1638  return this->Communicator->Send(data, length, remoteProcessId, tag);
1639  }
1640  else
1641  {
1642  return 0;
1643  }
1644 }
1645 
1647  const unsigned long long* data, vtkIdType length, int remoteProcessId, int tag)
1648 {
1649  if (this->Communicator)
1650  {
1651  return this->Communicator->Send(data, length, remoteProcessId, tag);
1652  }
1653  else
1654  {
1655  return 0;
1656  }
1657 }
1658 
1660  const vtkMultiProcessStream& stream, int remoteId, int tag)
1661 {
1662  if (this->Communicator)
1663  {
1664  return this->Communicator->Send(stream, remoteId, tag);
1665  }
1666  return 0;
1667 }
1668 
1669 inline int vtkMultiProcessController::Receive(vtkDataObject* data, int remoteProcessId, int tag)
1670 {
1671  if (this->Communicator)
1672  {
1673  return this->Communicator->Receive(data, remoteProcessId, tag);
1674  }
1675  else
1676  {
1677  return 0;
1678  }
1679 }
1680 
1682 {
1683  if (this->Communicator)
1684  {
1685  return this->Communicator->ReceiveDataObject(remoteProcessId, tag);
1686  }
1687  else
1688  {
1689  return nullptr;
1690  }
1691 }
1692 
1693 inline int vtkMultiProcessController::Receive(vtkDataArray* data, int remoteProcessId, int tag)
1694 {
1695  if (this->Communicator)
1696  {
1697  return this->Communicator->Receive(data, remoteProcessId, tag);
1698  }
1699  else
1700  {
1701  return 0;
1702  }
1703 }
1704 
1706  int* data, vtkIdType length, int remoteProcessId, int tag)
1707 {
1708  if (this->Communicator)
1709  {
1710  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1711  }
1712  else
1713  {
1714  return 0;
1715  }
1716 }
1717 
1719  unsigned int* data, vtkIdType length, int remoteProcessId, int tag)
1720 {
1721  if (this->Communicator)
1722  {
1723  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1724  }
1725  else
1726  {
1727  return 0;
1728  }
1729 }
1730 
1732  short* data, vtkIdType length, int remoteProcessId, int tag)
1733 {
1734  if (this->Communicator)
1735  {
1736  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1737  }
1738  else
1739  {
1740  return 0;
1741  }
1742 }
1743 
1745  unsigned short* data, vtkIdType length, int remoteProcessId, int tag)
1746 {
1747  if (this->Communicator)
1748  {
1749  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1750  }
1751  else
1752  {
1753  return 0;
1754  }
1755 }
1756 
1758  long* data, vtkIdType length, int remoteProcessId, int tag)
1759 {
1760  if (this->Communicator)
1761  {
1762  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1763  }
1764  else
1765  {
1766  return 0;
1767  }
1768 }
1769 
1771  unsigned long* data, vtkIdType length, int remoteProcessId, int tag)
1772 {
1773  if (this->Communicator)
1774  {
1775  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1776  }
1777  else
1778  {
1779  return 0;
1780  }
1781 }
1782 
1784  char* data, vtkIdType length, int remoteProcessId, int tag)
1785 {
1786  if (this->Communicator)
1787  {
1788  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1789  }
1790  else
1791  {
1792  return 0;
1793  }
1794 }
1795 
1797  unsigned char* data, vtkIdType length, int remoteProcessId, int tag)
1798 {
1799  if (this->Communicator)
1800  {
1801  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1802  }
1803  else
1804  {
1805  return 0;
1806  }
1807 }
1808 
1810  signed char* data, vtkIdType length, int remoteProcessId, int tag)
1811 {
1812  if (this->Communicator)
1813  {
1814  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1815  }
1816  else
1817  {
1818  return 0;
1819  }
1820 }
1821 
1823  float* data, vtkIdType length, int remoteProcessId, int tag)
1824 {
1825  if (this->Communicator)
1826  {
1827  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1828  }
1829  else
1830  {
1831  return 0;
1832  }
1833 }
1834 
1836  double* data, vtkIdType length, int remoteProcessId, int tag)
1837 {
1838  if (this->Communicator)
1839  {
1840  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1841  }
1842  else
1843  {
1844  return 0;
1845  }
1846 }
1847 
1849  long long* data, vtkIdType length, int remoteProcessId, int tag)
1850 {
1851  if (this->Communicator)
1852  {
1853  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1854  }
1855  else
1856  {
1857  return 0;
1858  }
1859 }
1860 
1862  unsigned long long* data, vtkIdType length, int remoteProcessId, int tag)
1863 {
1864  if (this->Communicator)
1865  {
1866  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1867  }
1868  else
1869  {
1870  return 0;
1871  }
1872 }
1873 
1874 inline int vtkMultiProcessController::Receive(vtkMultiProcessStream& stream, int remoteId, int tag)
1875 {
1876  if (this->Communicator)
1877  {
1878  return this->Communicator->Receive(stream, remoteId, tag);
1879  }
1880  return 0;
1881 }
1882 
1884 {
1885  if (this->Communicator)
1886  {
1887  this->Communicator->Barrier();
1888  }
1889 }
1890 
1892 {
1893  if (this->Communicator)
1894  {
1895  return this->Communicator->GetCount();
1896  }
1897  return 0;
1898 }
1899 
1900 #endif
vtkMultiProcessController::GatherV
int GatherV(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, vtkIdTypeArray *recvLengths, vtkIdTypeArray *offsets, int destProcessId)
Definition: vtkMultiProcessController.h:746
vtkMultiProcessController::Scatter
int Scatter(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:790
vtkMultiProcessController::TriggerRMIOnAllChildren
void TriggerRMIOnAllChildren(const char *arg, int tag)
Definition: vtkMultiProcessController.h:297
vtkMultiProcessController::AllReduce
int AllReduce(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
Definition: vtkMultiProcessController.h:1375
vtkMultiProcessController::AllReduce
int AllReduce(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, int operation)
Definition: vtkMultiProcessController.h:1304
vtkCommunicator::Receive
int Receive(vtkDataObject *data, int remoteHandle, int tag)
This method receives a data object from a corresponding send.
vtkX3D::vector
Definition: vtkX3D.h:243
vtkMultiProcessController::Broadcast
int Broadcast(long *data, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:490
vtkMultiProcessController::AllGatherV
int AllGatherV(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Definition: vtkMultiProcessController.h:1050
vtkMultiProcessController::RMICommunicator
vtkCommunicator * RMICommunicator
Definition: vtkMultiProcessController.h:1454
vtkMultiProcessController::AllGather
int AllGather(const long *sendBuffer, long *recvBuffer, vtkIdType length)
Definition: vtkMultiProcessController.h:950
vtkMultiProcessController::AllGather
int AllGather(const vtkMultiProcessStream &sendBuffer, std::vector< vtkMultiProcessStream > &recvBuffer)
Gathers vtkMultiProcessStream (sendBuffer) from all ranks to the destProcessId.
Definition: vtkMultiProcessController.h:1000
vtkMultiProcessController::Reduce
int Reduce(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
Definition: vtkMultiProcessController.h:1215
vtkMultiProcessController::Scatter
int Scatter(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:813
vtkMultiProcessController::Reduce
int Reduce(const char *sendBuffer, char *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
Definition: vtkMultiProcessController.h:1210
vtkMultiProcessController::Consts
Consts
Definition: vtkMultiProcessController.h:365
vtkMultiProcessController::Reduce
int Reduce(const long long *sendBuffer, long long *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
Definition: vtkMultiProcessController.h:1230
vtkMultiProcessController::ReceiveDataObject
vtkDataObject * ReceiveDataObject(int remoteId, int tag)
Definition: vtkMultiProcessController.h:1681
vtkProcessFunctionType
void(* vtkProcessFunctionType)(vtkMultiProcessController *controller, void *userData)
Definition: vtkMultiProcessController.h:70
vtkMultiProcessController::Broadcast
int Broadcast(long long *data, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:518
vtkMultiProcessController::AllReduce
int AllReduce(const double *sendBuffer, double *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
Definition: vtkMultiProcessController.h:1365
vtkMultiProcessController::Receive
int Receive(int *data, vtkIdType maxlength, int remoteProcessId, int tag)
This method receives data from a corresponding send.
Definition: vtkMultiProcessController.h:1705
vtkMultiProcessController::AllGatherV
int AllGatherV(const long *sendBuffer, long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Definition: vtkMultiProcessController.h:1030
vtkMultiProcessController::Broadcast
int Broadcast(unsigned long *data, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:494
vtkMultiProcessController::GatherV
int GatherV(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
Definition: vtkMultiProcessController.h:709
vtkMultiProcessController::AllGatherV
int AllGatherV(const char *sendBuffer, char *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Definition: vtkMultiProcessController.h:1045
vtkCommunicator
Used to send/receive messages in a multiprocess environment.
Definition: vtkCommunicator.h:50
vtkIdType
int vtkIdType
Definition: vtkType.h:330
vtkMultiProcessController::Communicator
vtkCommunicator * Communicator
Definition: vtkMultiProcessController.h:1445
vtkMultiProcessController::Gather
int Gather(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, int destProcessId)
Definition: vtkMultiProcessController.h:610
vtkMultiProcessController::AllReduce
int AllReduce(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
Definition: vtkMultiProcessController.h:1355
vtkMultiProcessController::Scatter
int Scatter(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:831
vtkMultiProcessController::Reduce
int Reduce(const int *sendBuffer, int *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
Reduce an array to the given destination process.
Definition: vtkMultiProcessController.h:1175
vtkMultiProcessController::SingleMethod
vtkProcessFunctionType SingleMethod
Definition: vtkMultiProcessController.h:1417
vtkX3D::data
Definition: vtkX3D.h:321
vtkMultiProcessController::Scatter
int Scatter(const long long *sendBuffer, long long *recvBuffer, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:826
vtkMultiProcessController::Broadcast
int Broadcast(unsigned char *data, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:498
vtkMultiProcessController::AllReduce
int AllReduce(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
Definition: vtkMultiProcessController.h:1340
vtkMultiProcessController::GatherV
int GatherV(const long *sendBuffer, long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
Definition: vtkMultiProcessController.h:685
vtkMultiProcessController::AllGather
int AllGather(const double *sendBuffer, double *recvBuffer, vtkIdType length)
Definition: vtkMultiProcessController.h:974
vtkMultiProcessController::ScatterV
int ScatterV(const long *sendBuffer, long *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
Definition: vtkMultiProcessController.h:874
vtkCommunicator::Operation
A custom operation to use in a reduce command.
Definition: vtkCommunicator.h:103
vtkMultiProcessStream
stream used to pass data across processes using vtkMultiProcessController.
Definition: vtkMultiProcessStream.h:37
vtkMultiProcessController::Reduce
int Reduce(const long *sendBuffer, long *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
Definition: vtkMultiProcessController.h:1195
vtkMultiProcessController::Broadcast
int Broadcast(unsigned long long *data, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:522
vtkMultiProcessController::Reduce
int Reduce(const short *sendBuffer, short *recvBuffer, vtkIdType length, int operation, int destProcessId)
Definition: vtkMultiProcessController.h:1109
vtkMultiProcessController::GatherV
int GatherV(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
Definition: vtkMultiProcessController.h:691
vtkMultiProcessController::Reduce
int Reduce(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
Definition: vtkMultiProcessController.h:1235
vtkMultiProcessController::Reduce
int Reduce(const double *sendBuffer, double *recvBuffer, vtkIdType length, int operation, int destProcessId)
Definition: vtkMultiProcessController.h:1149
vtkMultiProcessController::AllGather
int AllGather(const short *sendBuffer, short *recvBuffer, vtkIdType length)
Definition: vtkMultiProcessController.h:942
vtkMultiProcessController::AllReduce
int AllReduce(const short *sendBuffer, short *recvBuffer, vtkIdType length, int operation)
Definition: vtkMultiProcessController.h:1260
vtkMultiProcessController::AllReduce
int AllReduce(const long long *sendBuffer, long long *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
Definition: vtkMultiProcessController.h:1370
vtkCommunicator::Barrier
virtual void Barrier()
Will block the processes until all other processes reach the Barrier function.
vtkMultiProcessController::Gather
int Gather(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, int destProcessId)
Definition: vtkMultiProcessController.h:587
vtkSmartPointer< vtkDataObject >
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:62
vtkMultiProcessController::GetRMITag
static int GetRMITag()
Definition: vtkMultiProcessController.h:355
vtkMultiProcessController::Broadcast
int Broadcast(vtkDataArray *data, int srcProcessId)
Definition: vtkMultiProcessController.h:530
vtkMultiProcessController::GatherV
int GatherV(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
Definition: vtkMultiProcessController.h:697
vtkMultiProcessController::AllReduce
int AllReduce(const long *sendBuffer, long *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
Definition: vtkMultiProcessController.h:1335
vtkMultiProcessController::AllGatherV
int AllGatherV(const float *sendBuffer, float *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Definition: vtkMultiProcessController.h:1055
vtkX3D::length
Definition: vtkX3D.h:399
vtkMultiProcessController::Gather
int Gather(const char *sendBuffer, char *recvBuffer, vtkIdType length, int destProcessId)
Definition: vtkMultiProcessController.h:583
vtkMultiProcessController::BroadcastTriggerRMI
bool BroadcastTriggerRMI
Definition: vtkMultiProcessController.h:1438
vtkMultiProcessController::Gather
int Gather(const long long *sendBuffer, long long *recvBuffer, vtkIdType length, int destProcessId)
Definition: vtkMultiProcessController.h:600
vtkMultiProcessController::GatherV
int GatherV(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, int destProcessId)
This special form of GatherV will automatically determine recvLengths and offsets to tightly pack the...
Definition: vtkMultiProcessController.h:759
vtkMultiProcessController::AllReduce
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.
Definition: vtkMultiProcessController.h:1251
vtkDataArray
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:49
vtkMultiProcessController::TriggerRMIOnAllChildren
void TriggerRMIOnAllChildren(int tag)
Definition: vtkMultiProcessController.h:301
vtkMultiProcessController::Broadcast
int Broadcast(signed char *data, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:506
vtkMultiProcessController::RMI_NO_ERROR
Definition: vtkMultiProcessController.h:360
vtkMultiProcessController::Reduce
int Reduce(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, int operation, int destProcessId)
Definition: vtkMultiProcessController.h:1104
vtkMultiProcessController::AllGatherV
int AllGatherV(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer)
This special form of AllGatherV will automatically determine recvLengths and offsets to tightly pack ...
Definition: vtkMultiProcessController.h:1088
vtkMultiProcessController::AllGather
int AllGather(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length)
Definition: vtkMultiProcessController.h:982
vtkMultiProcessController::Broadcast
int Broadcast(double *data, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:514
vtkMultiProcessController::AllGather
int AllGather(const int *sendBuffer, int *recvBuffer, vtkIdType length)
Same as gather except that the result ends up on all processes.
Definition: vtkMultiProcessController.h:934
vtkMultiProcessController::AllGather
int AllGather(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length)
Definition: vtkMultiProcessController.h:938
vtkMultiProcessController::Broadcast
int Broadcast(int *data, vtkIdType length, int srcProcessId)
Broadcast sends the array in the process with id srcProcessId to all of the other processes.
Definition: vtkMultiProcessController.h:474
vtkMultiProcessController::Broadcast
int Broadcast(unsigned int *data, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:478
vtkMultiProcessController::Gather
int Gather(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length, int destProcessId)
Definition: vtkMultiProcessController.h:578
vtkMultiProcessController::AllReduce
int AllReduce(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, vtkCommunicator::Operation *operation)
Definition: vtkMultiProcessController.h:1380
vtkMultiProcessController::Tags
Tags
Definition: vtkMultiProcessController.h:371
vtkMultiProcessController::AllGatherV
int AllGatherV(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Definition: vtkMultiProcessController.h:1025
vtkMultiProcessController::AllGatherV
int AllGatherV(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, vtkIdType *recvLengths, vtkIdType *offsets)
Definition: vtkMultiProcessController.h:1075
vtkMultiProcessController::Reduce
int Reduce(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, int operation, int destProcessId)
Definition: vtkMultiProcessController.h:1164
vtkCommunicator::ReceiveDataObject
vtkDataObject * ReceiveDataObject(int remoteHandle, int tag)
The caller does not have to know the data type before this call is made.
vtkMultiProcessController::ScatterV
int ScatterV(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
Definition: vtkMultiProcessController.h:868
vtkMultiProcessController::Broadcast
int Broadcast(float *data, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:510
vtkMultiProcessController::Scatter
int Scatter(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:799
vtkMultiProcessController::AllReduce
int AllReduce(const double *sendBuffer, double *recvBuffer, vtkIdType length, int operation)
Definition: vtkMultiProcessController.h:1296
vtkMultiProcessController::AllReduce
int AllReduce(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, int operation)
Definition: vtkMultiProcessController.h:1255
vtkDataArraySelection
Store on/off settings for data arrays for a vtkSource.
Definition: vtkDataArraySelection.h:34
vtkMultiProcessController::Reduce
int Reduce(const long *sendBuffer, long *recvBuffer, vtkIdType length, int operation, int destProcessId)
Definition: vtkMultiProcessController.h:1119
vtkMultiProcessController::AllReduce
int AllReduce(const int *sendBuffer, int *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
Definition: vtkMultiProcessController.h:1315
vtkMultiProcessController::Reduce
int Reduce(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
Definition: vtkMultiProcessController.h:1200
vtkMultiProcessController::Reduce
int Reduce(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
Definition: vtkMultiProcessController.h:1180
vtkBoundingBox
Fast, simple class for representing and operating on 3D bounds.
Definition: vtkBoundingBox.h:35
vtkMultiProcessController::AllGather
int AllGather(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length)
Definition: vtkMultiProcessController.h:946
vtkMultiProcessController::ScatterV
int ScatterV(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
Definition: vtkMultiProcessController.h:886
vtkMultiProcessController::GatherV
int GatherV(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
Definition: vtkMultiProcessController.h:741
vtkCollection
create and manipulate ordered lists of objects
Definition: vtkCollection.h:52
vtkMultiProcessController::GatherV
int GatherV(const short *sendBuffer, short *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
Definition: vtkMultiProcessController.h:673
vtkMultiProcessController::ScatterV
int ScatterV(const float *sendBuffer, float *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
Definition: vtkMultiProcessController.h:904
vtkMultiProcessController::Broadcast
int Broadcast(vtkDataObject *data, int srcProcessId)
Definition: vtkMultiProcessController.h:526
vtkMultiProcessController::AllReduce
int AllReduce(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
Definition: vtkMultiProcessController.h:1330
vtkMultiProcessController::Scatter
int Scatter(const long *sendBuffer, long *recvBuffer, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:795
vtkMultiProcessController::AllGather
int AllGather(const char *sendBuffer, char *recvBuffer, vtkIdType length)
Definition: vtkMultiProcessController.h:962
vtkMultiProcessController::Reduce
int Reduce(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length, int operation, int destProcessId)
Definition: vtkMultiProcessController.h:1124
vtkMultiProcessController::Reduce
int Reduce(const long long *sendBuffer, long long *recvBuffer, vtkIdType length, int operation, int destProcessId)
Definition: vtkMultiProcessController.h:1154
vtkMultiProcessController
Multiprocessing communication superclass.
Definition: vtkMultiProcessController.h:76
vtkMultiProcessController::GatherV
int GatherV(vtkDataObject *sendData, vtkSmartPointer< vtkDataObject > *recvData, int destProcessId)
Definition: vtkMultiProcessController.h:763
vtkMultiProcessController::Gather
int Gather(const long *sendBuffer, long *recvBuffer, vtkIdType length, int destProcessId)
Definition: vtkMultiProcessController.h:569
vtkMultiProcessController::AllReduce
int AllReduce(const long *sendBuffer, long *recvBuffer, vtkIdType length, int operation)
Definition: vtkMultiProcessController.h:1269
vtkMultiProcessController::Broadcast
int Broadcast(unsigned short *data, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:486
vtkOutputWindow
base class for writing debug output to a console
Definition: vtkOutputWindow.h:51
vtkMultiProcessController::Reduce
int Reduce(const short *sendBuffer, short *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
Definition: vtkMultiProcessController.h:1185
vtkRMIFunctionType
void(* vtkRMIFunctionType)(void *localArg, void *remoteArg, int remoteArgLength, int remoteProcessId)
Definition: vtkMultiProcessController.h:73
vtkMultiProcessController::Scatter
int Scatter(const int *sendBuffer, int *recvBuffer, vtkIdType length, int srcProcessId)
Scatter takes an array in the process with id srcProcessId and distributes it.
Definition: vtkMultiProcessController.h:777
vtkMultiProcessController::AllGather
int AllGather(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer)
Definition: vtkMultiProcessController.h:987
vtkImageData
topologically and geometrically regular array of data
Definition: vtkImageData.h:47
vtkMultiProcessController::Scatter
int Scatter(const char *sendBuffer, char *recvBuffer, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:809
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkMultiProcessController::GatherV
int GatherV(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
Definition: vtkMultiProcessController.h:667
vtkMultiProcessController::GetRMIArgTag
static int GetRMIArgTag()
Definition: vtkMultiProcessController.h:356
vtkMultiProcessController::Scatter
int Scatter(const double *sendBuffer, double *recvBuffer, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:822
vtkMultiProcessController::ScatterV
int ScatterV(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
Definition: vtkMultiProcessController.h:922
vtkMultiProcessController::Barrier
void Barrier()
This method can be used to synchronize processes.
Definition: vtkMultiProcessController.h:1883
vtkMultiProcessController::AllGatherV
int AllGatherV(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Definition: vtkMultiProcessController.h:1035
vtkMultiProcessController::AllReduce
int AllReduce(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, int operation)
Definition: vtkMultiProcessController.h:1287
vtkMultiProcessController::AllReduce
int AllReduce(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, int operation)
Definition: vtkMultiProcessController.h:1309
vtkMultiProcessController::AllGatherV
int AllGatherV(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Definition: vtkMultiProcessController.h:1015
vtkObject::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkMultiProcessController::Gather
int Gather(const int *sendBuffer, int *recvBuffer, vtkIdType length, int destProcessId)
Gather collects arrays in the process with id destProcessId.
Definition: vtkMultiProcessController.h:551
vtkMultiProcessController::AllReduce
int AllReduce(const float *sendBuffer, float *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
Definition: vtkMultiProcessController.h:1360
vtkMultiProcessController::AllGatherV
int AllGatherV(const short *sendBuffer, short *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Definition: vtkMultiProcessController.h:1020
vtkMultiProcessController::Scatter
int Scatter(const short *sendBuffer, short *recvBuffer, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:786
vtkMultiProcessController::ScatterV
int ScatterV(const char *sendBuffer, char *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
Definition: vtkMultiProcessController.h:892
vtkMultiProcessController::GatherV
int GatherV(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
Definition: vtkMultiProcessController.h:679
vtkMultiProcessController::Reduce
int Reduce(const double *sendBuffer, double *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
Definition: vtkMultiProcessController.h:1225
vtkMultiProcessController::Broadcast
int Broadcast(vtkMultiProcessStream &stream, int srcProcessId)
Definition: vtkMultiProcessController.h:536
vtkMultiProcessController::GatherV
int GatherV(const int *sendBuffer, int *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
GatherV is the vector variant of Gather.
Definition: vtkMultiProcessController.h:661
vtkMultiProcessController::AllGatherV
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.
Definition: vtkMultiProcessController.h:1010
vtkMultiProcessController::AllGather
int AllGather(const long long *sendBuffer, long long *recvBuffer, vtkIdType length)
Definition: vtkMultiProcessController.h:978
vtkMultiProcessController::ScatterV
int ScatterV(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
Definition: vtkMultiProcessController.h:880
vtkMultiProcessController::ScatterV
int ScatterV(const int *sendBuffer, int *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
ScatterV is the vector variant of Scatter.
Definition: vtkMultiProcessController.h:850
vtkObject.h
vtkMultiProcessController::AllGatherV
int AllGatherV(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Definition: vtkMultiProcessController.h:1070
vtkMultiProcessController::Send
int Send(const int *data, vtkIdType length, int remoteProcessId, int tag)
This method sends data to another process.
Definition: vtkMultiProcessController.h:1490
vtkMultiProcessController::AllReduce
int AllReduce(const short *sendBuffer, short *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
Definition: vtkMultiProcessController.h:1325
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:56
vtkMultiProcessController::AllReduce
int AllReduce(const float *sendBuffer, float *recvBuffer, vtkIdType length, int operation)
Definition: vtkMultiProcessController.h:1292
vtkMultiProcessController::ForceDeepCopy
int ForceDeepCopy
Definition: vtkMultiProcessController.h:1433
vtkProcess
a process that can be launched by a vtkMultiProcessController
Definition: vtkProcess.h:46
vtkMultiProcessController::BreakFlag
int BreakFlag
Definition: vtkMultiProcessController.h:1424
vtkMultiProcessController::AllGather
int AllGather(const float *sendBuffer, float *recvBuffer, vtkIdType length)
Definition: vtkMultiProcessController.h:970
vtkMultiProcessController::Reduce
int Reduce(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length, int operation, int destProcessId)
Definition: vtkMultiProcessController.h:1129
vtkMultiProcessController::Broadcast
int Broadcast(short *data, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:482
vtkProcessGroup
A subgroup of processes from a communicator.
Definition: vtkProcessGroup.h:54
vtkMultiProcessController::Reduce
int Reduce(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, int operation, int destProcessId)
Definition: vtkMultiProcessController.h:1159
vtkMultiProcessController::Gather
int Gather(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, int destProcessId)
Definition: vtkMultiProcessController.h:564
vtkMultiProcessController::Errors
Errors
Definition: vtkMultiProcessController.h:358
vtkIdTypeArray
dynamic, self-adjusting array of vtkIdType
Definition: vtkIdTypeArray.h:35
vtkCommunicator::Send
int Send(vtkDataObject *data, int remoteHandle, int tag)
This method sends a data object to a destination.
vtkCommunicator.h
vtkMultiProcessController::Reduce
int Reduce(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, vtkCommunicator::Operation *operation, int destProcessId)
Definition: vtkMultiProcessController.h:1240
vtkMultiProcessController::ScatterV
int ScatterV(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
Definition: vtkMultiProcessController.h:856
vtkMultiProcessController::Gather
int Gather(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, int destProcessId)
Definition: vtkMultiProcessController.h:605
vtkMultiProcessController::AllReduce
int AllReduce(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length, int operation)
Definition: vtkMultiProcessController.h:1273
vtkMultiProcessController::AllReduce
int AllReduce(const long long *sendBuffer, long long *recvBuffer, vtkIdType length, int operation)
Definition: vtkMultiProcessController.h:1300
vtkMultiProcessController::AllReduce
int AllReduce(const char *sendBuffer, char *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
Definition: vtkMultiProcessController.h:1350
vtkMultiProcessController::Gather
int Gather(const float *sendBuffer, float *recvBuffer, vtkIdType length, int destProcessId)
Definition: vtkMultiProcessController.h:592
vtkMultiProcessController::ScatterV
int ScatterV(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
Definition: vtkMultiProcessController.h:898
vtkMultiProcessController::Scatter
int Scatter(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:804
vtkMultiProcessController::AllReduce
int AllReduce(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length, int operation)
Definition: vtkMultiProcessController.h:1278
vtkMultiProcessController::AllGather
int AllGather(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length)
Definition: vtkMultiProcessController.h:966
vtkCommunicator::GetCount
virtual vtkIdType GetCount()
Returns the number of words received by the most recent Receive().
vtkMultiProcessController::AllGatherV
int AllGatherV(const long long *sendBuffer, long long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Definition: vtkMultiProcessController.h:1065
vtkMultiProcessController::OutputWindow
vtkOutputWindow * OutputWindow
Definition: vtkMultiProcessController.h:1440
vtkMultiProcessController::AllGather
int AllGather(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length)
Definition: vtkMultiProcessController.h:958
vtkMultiProcessController::ScatterV
int ScatterV(const double *sendBuffer, double *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
Definition: vtkMultiProcessController.h:910
vtkMultiProcessController::Gather
int Gather(const short *sendBuffer, short *recvBuffer, vtkIdType length, int destProcessId)
Definition: vtkMultiProcessController.h:560
vtkMultiProcessController::GetBreakRMITag
static int GetBreakRMITag()
Accessor to some default tags.
Definition: vtkMultiProcessController.h:354
vtkMultiProcessController::AllReduce
int AllReduce(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, int operation)
Definition: vtkMultiProcessController.h:1264
vtkMultiProcessController::GatherV
int GatherV(const float *sendBuffer, float *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
Definition: vtkMultiProcessController.h:715
vtkMultiProcessController::RemoveRMI
virtual void RemoveRMI(vtkRMIFunctionType f, void *arg, int tag)
Take an RMI away.
Definition: vtkMultiProcessController.h:233
vtkMultiProcessController::SingleData
void * SingleData
Definition: vtkMultiProcessController.h:1418
vtkMultiProcessController::Scatter
int Scatter(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, int srcProcessId)
Definition: vtkMultiProcessController.h:836
vtkMultiProcessController::Scatter
int Scatter(const float *sendBuffer, float *recvBuffer, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:818
vtkMultiProcessController::Gather
int Gather(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, int destProcessId)
Definition: vtkMultiProcessController.h:555
vtkMultiProcessController::Gather
int Gather(const double *sendBuffer, double *recvBuffer, vtkIdType length, int destProcessId)
Definition: vtkMultiProcessController.h:596
vtkMultiProcessController::RMI_TAG_ERROR
Definition: vtkMultiProcessController.h:361
vtkMultiProcessController::Reduce
int Reduce(const float *sendBuffer, float *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
Definition: vtkMultiProcessController.h:1220
vtkMultiProcessController::TriggerRMI
void TriggerRMI(int remoteProcessId, int tag)
Convenience method when there is no argument.
Definition: vtkMultiProcessController.h:282
vtkMultiProcessController::Gather
int Gather(vtkDataObject *sendBuffer, std::vector< vtkSmartPointer< vtkDataObject >> &recvBuffer, int destProcessId)
Gathers vtkDataObject (sendBuffer) from all ranks to the destProcessId.
Definition: vtkMultiProcessController.h:628
vtkMultiProcessController::AllReduce
int AllReduce(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
Definition: vtkMultiProcessController.h:1345
vtkMultiProcessController::GatherV
int GatherV(const char *sendBuffer, char *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
Definition: vtkMultiProcessController.h:703
vtkDataObject
general representation of visualization data
Definition: vtkDataObject.h:59
vtkMultiProcessController::Broadcast
int Broadcast(char *data, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:502
vtkMultiProcessController::Scatter
int Scatter(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, int srcProcessId)
Definition: vtkMultiProcessController.h:781
vtkX3D::index
Definition: vtkX3D.h:252
vtkMultiProcessController::GatherV
int GatherV(const double *sendBuffer, double *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
Definition: vtkMultiProcessController.h:721
vtkMultiProcessController::Reduce
int Reduce(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, int operation, int destProcessId)
Definition: vtkMultiProcessController.h:1139
vtkMultiProcessController::ScatterV
int ScatterV(const short *sendBuffer, short *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
Definition: vtkMultiProcessController.h:862
vtkMultiProcessController::Reduce
int Reduce(const float *sendBuffer, float *recvBuffer, vtkIdType length, int operation, int destProcessId)
Definition: vtkMultiProcessController.h:1144
vtkMultiProcessController::Reduce
int Reduce(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
Definition: vtkMultiProcessController.h:1205
vtkMultiProcessController::AllReduce
int AllReduce(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
Definition: vtkMultiProcessController.h:1320
vtkMultiProcessController::Reduce
int Reduce(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, int operation, int destProcessId)
Definition: vtkMultiProcessController.h:1114
vtkMultiProcessController::TriggerRMI
void TriggerRMI(int remoteProcessId, const char *arg, int tag)
Convenience method when the arg is a string.
Definition: vtkMultiProcessController.h:274
vtkMultiProcessController::AllGatherV
int AllGatherV(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Definition: vtkMultiProcessController.h:1040
vtkMultiProcessController::Gather
int Gather(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length, int destProcessId)
Definition: vtkMultiProcessController.h:573
vtkMultiProcessController::AllGatherV
int AllGatherV(const double *sendBuffer, double *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
Definition: vtkMultiProcessController.h:1060
vtkMultiProcessController::AllGather
int AllGather(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length)
Definition: vtkMultiProcessController.h:954
vtkMultiProcessController::ScatterV
int ScatterV(const long long *sendBuffer, long long *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
Definition: vtkMultiProcessController.h:916
vtkMultiProcessController::GatherV
int GatherV(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
Definition: vtkMultiProcessController.h:733
vtkMultiProcessController::AllReduce
int AllReduce(const char *sendBuffer, char *recvBuffer, vtkIdType length, int operation)
Definition: vtkMultiProcessController.h:1283
vtkMultiProcessController::GetCount
vtkIdType GetCount()
Returns the number of words received by the most recent Receive().
Definition: vtkMultiProcessController.h:1891
vtkMultiProcessController::Gather
int Gather(const vtkMultiProcessStream &sendBuffer, std::vector< vtkMultiProcessStream > &recvBuffer, int destProcessId)
Gathers vtkMultiProcessStream (sendBuffer) from all ranks to the destProcessId.
Definition: vtkMultiProcessController.h:643
vtkMultiProcessController::GatherV
int GatherV(const long long *sendBuffer, long long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
Definition: vtkMultiProcessController.h:727
vtkMultiProcessController::Reduce
int Reduce(const char *sendBuffer, char *recvBuffer, vtkIdType length, int operation, int destProcessId)
Definition: vtkMultiProcessController.h:1134
vtkMultiProcessController::Reduce
int Reduce(const int *sendBuffer, int *recvBuffer, vtkIdType length, int operation, int destProcessId)
Reduce an array to the given destination process.
Definition: vtkMultiProcessController.h:1099
vtkMultiProcessController::Reduce
int Reduce(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
Definition: vtkMultiProcessController.h:1190