VTK
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 =========================================================================*/
54 #ifndef vtkMultiProcessController_h
55 #define vtkMultiProcessController_h
56 
57 #include "vtkParallelCoreModule.h" // For export macro
58 #include "vtkObject.h"
59 
60 #include "vtkCommunicator.h" // Needed for direct access to communicator
61 
62 class vtkCollection;
63 class vtkDataObject;
64 class vtkDataSet;
65 class vtkImageData;
68 class vtkOutputWindow;
69 class vtkProcessGroup;
70 class vtkProcess;
71 
72 //BTX
73 // The type of function that gets called when new processes are initiated.
75  void *userData);
76 
77 // The type of function that gets called when an RMI is triggered.
78 typedef void (*vtkRMIFunctionType)(void *localArg,
79  void *remoteArg, int remoteArgLength,
80  int remoteProcessId);
81 //ETX
82 
83 
85 {
86 public:
88  void PrintSelf(ostream& os, vtkIndent indent);
89 
93  virtual void Initialize(int* vtkNotUsed(argc), char*** vtkNotUsed(argv))=0;
94 
96 
99  virtual void Initialize(int* vtkNotUsed(argc), char*** vtkNotUsed(argv),
100  int initializedExternally)=0;
102 
105  virtual void Finalize()=0;
106 
110  virtual void Finalize(int finalizedExternally)=0;
111 
113 
116  void SetNumberOfProcesses(int num);
117  int GetNumberOfProcesses();
119 
120  //BTX
124  void SetSingleMethod(vtkProcessFunctionType, void *data);
125 
127 
130  void SetSingleProcessObject(vtkProcess *p);
131  //ETX
133 
137  virtual void SingleMethodExecute() = 0;
138 
139  //BTX
141 
145  void SetMultipleMethod(int index, vtkProcessFunctionType, void *data);
146  //ETX
148 
152  virtual void MultipleMethodExecute() = 0;
153 
155  int GetLocalProcessId();
156 
161  static vtkMultiProcessController *GetGlobalController();
162 
165  virtual void CreateOutputWindow() = 0;
166 
168 
177  virtual vtkMultiProcessController *CreateSubController(
178  vtkProcessGroup *group);
180 
182 
191  virtual vtkMultiProcessController *PartitionController(int localColor,
192  int localKey);
194 
195  //------------------ RMIs --------------------
196  //BTX
207  virtual unsigned long AddRMI(vtkRMIFunctionType, void *localArg, int tag);
208 
210  virtual int RemoveFirstRMI(int tag);
211 
214  virtual int RemoveRMI(unsigned long id);
215 
217 
218  virtual void RemoveRMI(vtkRMIFunctionType f, void *arg, int tag)
219  {(void)f; (void)arg; (void)tag; vtkErrorMacro("RemoveRMI Not Implemented Yet");};
221 
226  virtual unsigned long AddRMICallback(vtkRMIFunctionType, void* localArg, int tag);
227 
231  virtual void RemoveAllRMICallbacks(int tag);
232 
234  virtual bool RemoveRMICallback(unsigned long id);
235 
236  //ETX
237 
239  void TriggerRMI(int remoteProcessId, void *arg, int argLength, int tag);
240 
243  void TriggerBreakRMIs();
244 
246 
247  void TriggerRMI(int remoteProcessId, const char *arg, int tag)
248  { this->TriggerRMI(remoteProcessId, (void*)arg,
249  static_cast<int>(strlen(arg))+1, tag); }
251 
253 
254  void TriggerRMI(int remoteProcessId, int tag)
255  { this->TriggerRMI(remoteProcessId, NULL, 0, tag); }
257 
259 
265  void TriggerRMIOnAllChildren(void *arg, int argLength, int tag);
266  void TriggerRMIOnAllChildren(const char *arg, int tag)
267  {
268  this->TriggerRMIOnAllChildren(
269  (void*)arg, static_cast<int>(strlen(arg))+1, tag);
270  }
272  {
273  this->TriggerRMIOnAllChildren(NULL, 0, tag);
274  }
275  void BroadcastTriggerRMIOnAllChildren(void* arg, int argLength, int tag);
277 
279 
286  int ProcessRMIs(int reportErrors, int dont_loop = 0);
287  int ProcessRMIs();
288  int BroadcastProcessRMIs(int reportErrors, int dont_loop=0);
290 
292 
295  vtkSetMacro(BreakFlag, int);
296  vtkGetMacro(BreakFlag, int);
298 
300 
303  vtkSetMacro(BroadcastTriggerRMI,bool);
304  vtkGetMacro(BroadcastTriggerRMI,bool);
305  vtkBooleanMacro(BroadcastTriggerRMI,bool);
307 
309 
311  vtkGetObjectMacro(Communicator, vtkCommunicator);
313 
315 
316  static int GetBreakRMITag() { return BREAK_RMI_TAG; }
317  static int GetRMITag() { return RMI_TAG; }
318  static int GetRMIArgTag() { return RMI_ARG_TAG; }
320 
321 //BTX
322 
323  enum Errors
324  {
327  RMI_ARG_ERROR
328  };
329 
330  enum Consts
331  {
332  ANY_SOURCE = -1,
333  INVALID_SOURCE = -2
334  };
335 
336  enum Tags
337  {
338  RMI_TAG = 1,
339  RMI_ARG_TAG = 2,
340  BREAK_RMI_TAG = 3,
341  XML_WRITER_DATA_INFO = 4
342  };
343 
344 //ETX
345 
347  void Barrier();
348 
349  static void SetGlobalController(vtkMultiProcessController *controller);
350 
351  //------------------ Communication --------------------
352 
354 
359  int Send(const int* data, vtkIdType length, int remoteProcessId, int tag);
360  int Send(const short* data, vtkIdType length, int remoteProcessId, int tag);
361  int Send(const unsigned short* data, vtkIdType length, int remoteProcessId, int tag);
362  int Send(const unsigned int* data, vtkIdType length, int remoteProcessId, int tag);
363  int Send(const unsigned long* data, vtkIdType length, int remoteProcessId,
364  int tag);
365  int Send(const long* data, vtkIdType length, int remoteProcessId,
366  int tag);
367  int Send(const signed char* data, vtkIdType length, int remoteProcessId, int tag);
368  int Send(const char* data, vtkIdType length, int remoteProcessId, int tag);
369  int Send(const unsigned char* data, vtkIdType length, int remoteProcessId, int tag);
370  int Send(const float* data, vtkIdType length, int remoteProcessId, int tag);
371  int Send(const double* data, vtkIdType length, int remoteProcessId, int tag);
372 #ifdef VTK_USE_64BIT_IDS
373  int Send(const vtkIdType* data, vtkIdType length, int remoteProcessId, int tag);
374 #else
375  int Send(const long long* data, vtkIdType length, int remoteProcessId, int tag);
376 #endif
377  int Send(const unsigned long long* data, vtkIdType length, int remoteProcessId, int tag);
378  int Send(vtkDataObject *data, int remoteId, int tag);
379  int Send(vtkDataArray *data, int remoteId, int tag);
381 
382 //BTX
384 
389  int Send(const vtkMultiProcessStream& stream, int remoteId, int tag);
390 //ETX
392 
394 
402  int Receive(int* data, vtkIdType maxlength, int remoteProcessId, int tag);
403  int Receive(unsigned int* data, vtkIdType maxlength, int remoteProcessId, int tag);
404  int Receive(short* data, vtkIdType maxlength, int remoteProcessId, int tag);
405  int Receive(unsigned short* data, vtkIdType maxlength, int remoteProcessId, int tag);
406  int Receive(long* data, vtkIdType maxlength, int remoteProcessId, int tag);
407  int Receive(unsigned long* data, vtkIdType maxlength, int remoteProcessId,
408  int tag);
409  int Receive(char* data, vtkIdType maxlength, int remoteProcessId, int tag);
410  int Receive(unsigned char* data, vtkIdType maxlength, int remoteProcessId, int tag);
411  int Receive(signed char* data, vtkIdType maxlength, int remoteProcessId, int tag);
412  int Receive(float* data, vtkIdType maxlength, int remoteProcessId, int tag);
413  int Receive(double* data, vtkIdType maxlength, int remoteProcessId, int tag);
414 #ifdef VTK_USE_64BIT_IDS
415  int Receive(vtkIdType* data, vtkIdType maxlength, int remoteProcessId, int tag);
416 #else
417  int Receive(long long* data, vtkIdType maxLength, int remoteProcessId, int tag);
418 #endif
419  int Receive(unsigned long long* data, vtkIdType maxLength, int remoteProcessId, int tag);
420  int Receive(vtkDataObject* data, int remoteId, int tag);
421  int Receive(vtkDataArray* data, int remoteId, int tag);
422 //BTX
424 
425 
426  int Receive(vtkMultiProcessStream& stream, int remoteId, int tag);
427 //ETX
428  vtkDataObject *ReceiveDataObject(int remoteId, int tag);
430 
438  vtkIdType GetCount();
439 
440 
441  //---------------------- Collective Operations ----------------------
442 
444 
447  int Broadcast(int *data, vtkIdType length, int srcProcessId) {
448  return this->Communicator->Broadcast(data, length, srcProcessId);
449  }
450  int Broadcast(unsigned int *data, vtkIdType length, int srcProcessId) {
451  return this->Communicator->Broadcast(data, length, srcProcessId);
452  }
453  int Broadcast(short *data, vtkIdType length, int srcProcessId) {
454  return this->Communicator->Broadcast(data, length, srcProcessId);
455  }
456  int Broadcast(unsigned short *data, vtkIdType length, int srcProcessId) {
457  return this->Communicator->Broadcast(data, length, srcProcessId);
458  }
459  int Broadcast(long *data, vtkIdType length, int srcProcessId) {
460  return this->Communicator->Broadcast(data, length, srcProcessId);
461  }
462  int Broadcast(unsigned long *data, vtkIdType length, int srcProcessId) {
463  return this->Communicator->Broadcast(data, length, srcProcessId);
464  }
465  int Broadcast(unsigned char *data, vtkIdType length, int srcProcessId) {
466  return this->Communicator->Broadcast(data, length, srcProcessId);
467  }
468  int Broadcast(char *data, vtkIdType length, int srcProcessId) {
469  return this->Communicator->Broadcast(data, length, srcProcessId);
470  }
471  int Broadcast(signed char *data, vtkIdType length, int srcProcessId) {
472  return this->Communicator->Broadcast(data, length, srcProcessId);
473  }
474  int Broadcast(float *data, vtkIdType length, int srcProcessId) {
475  return this->Communicator->Broadcast(data, length, srcProcessId);
476  }
477  int Broadcast(double *data, vtkIdType length, int srcProcessId) {
478  return this->Communicator->Broadcast(data, length, srcProcessId);
479  }
480 #ifdef VTK_USE_64BIT_IDS
481  int Broadcast(vtkIdType *data, vtkIdType length, int srcProcessId) {
482  return this->Communicator->Broadcast(data, length, srcProcessId);
483  }
484 #else
485  int Broadcast(long long *data, vtkIdType length, int srcProcessId) {
486  return this->Communicator->Broadcast(data, length, srcProcessId);
487  }
488 #endif
489  int Broadcast(unsigned long long *data, vtkIdType length, int srcProcessId) {
490  return this->Communicator->Broadcast(data, length, srcProcessId);
491  }
492  int Broadcast(vtkDataObject *data, int srcProcessId) {
493  return this->Communicator->Broadcast(data, srcProcessId);
494  }
495  int Broadcast(vtkDataArray *data, int srcProcessId) {
496  return this->Communicator->Broadcast(data, srcProcessId);
497  }
498 //BTX
499  int Broadcast(vtkMultiProcessStream& stream, int srcProcessId) {
500  return this->Communicator->Broadcast(stream, srcProcessId);
501  }
502 //ETX
504 
506 
514  int Gather(const int *sendBuffer, int *recvBuffer,
515  vtkIdType length, int destProcessId) {
516  return this->Communicator->Gather(sendBuffer, recvBuffer, length,
517  destProcessId);
518  }
519  int Gather(const unsigned int *sendBuffer, unsigned int *recvBuffer,
520  vtkIdType length, int destProcessId) {
521  return this->Communicator->Gather(sendBuffer, recvBuffer, length,
522  destProcessId);
523  }
524  int Gather(const short *sendBuffer, short *recvBuffer,
525  vtkIdType length, int destProcessId) {
526  return this->Communicator->Gather(sendBuffer, recvBuffer, length,
527  destProcessId);
528  }
529  int Gather(const unsigned short *sendBuffer, unsigned short *recvBuffer,
530  vtkIdType length, int destProcessId) {
531  return this->Communicator->Gather(sendBuffer, recvBuffer, length,
532  destProcessId);
533  }
534  int Gather(const long *sendBuffer, long *recvBuffer,
535  vtkIdType length, int destProcessId) {
536  return this->Communicator->Gather(sendBuffer, recvBuffer, length,
537  destProcessId);
538  }
539  int Gather(const unsigned long *sendBuffer, unsigned long *recvBuffer,
540  vtkIdType length, int destProcessId) {
541  return this->Communicator->Gather(sendBuffer, recvBuffer, length,
542  destProcessId);
543  }
544  int Gather(const unsigned char *sendBuffer, unsigned char *recvBuffer,
545  vtkIdType length, int destProcessId) {
546  return this->Communicator->Gather(sendBuffer, recvBuffer, length,
547  destProcessId);
548  }
549  int Gather(const char *sendBuffer, char *recvBuffer,
550  vtkIdType length, int destProcessId) {
551  return this->Communicator->Gather(sendBuffer, recvBuffer, length,
552  destProcessId);
553  }
554  int Gather(const signed char *sendBuffer, signed char *recvBuffer,
555  vtkIdType length, int destProcessId) {
556  return this->Communicator->Gather(sendBuffer, recvBuffer, length,
557  destProcessId);
558  }
559  int Gather(const float *sendBuffer, float *recvBuffer,
560  vtkIdType length, int destProcessId) {
561  return this->Communicator->Gather(sendBuffer, recvBuffer, length,
562  destProcessId);
563  }
564  int Gather(const double *sendBuffer, double *recvBuffer,
565  vtkIdType length, int destProcessId) {
566  return this->Communicator->Gather(sendBuffer, recvBuffer, length,
567  destProcessId);
568  }
569 #ifdef VTK_USE_64BIT_IDS
570  int Gather(const vtkIdType *sendBuffer, vtkIdType *recvBuffer,
571  vtkIdType length, int destProcessId) {
572  return this->Communicator->Gather(sendBuffer, recvBuffer, length,
573  destProcessId);
574  }
575 #else
576  int Gather(const long long *sendBuffer, long long *recvBuffer,
577  vtkIdType length, int destProcessId) {
578  return this->Communicator->Gather(sendBuffer, recvBuffer, length,
579  destProcessId);
580  }
581 #endif
582  int Gather(const unsigned long long *sendBuffer, unsigned long long *recvBuffer,
583  vtkIdType length, int destProcessId) {
584  return this->Communicator->Gather(sendBuffer, recvBuffer, length,
585  destProcessId);
586  }
587  int Gather(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer,
588  int destProcessId) {
589  return this->Communicator->Gather(sendBuffer, recvBuffer, destProcessId);
590  }
592 
594 
604  int GatherV(const int* sendBuffer, int* recvBuffer,
605  vtkIdType sendLength, vtkIdType* recvLengths, vtkIdType* offsets,
606  int destProcessId) {
607  return this->Communicator->GatherV(sendBuffer, recvBuffer,
608  sendLength, recvLengths,
609  offsets, destProcessId);
610  }
611  int GatherV(const unsigned int* sendBuffer, unsigned int* recvBuffer,
612  vtkIdType sendLength, vtkIdType* recvLengths, vtkIdType* offsets,
613  int destProcessId) {
614  return this->Communicator->GatherV(sendBuffer, recvBuffer,
615  sendLength, recvLengths,
616  offsets, destProcessId);
617  }
618  int GatherV(const short* sendBuffer, short* recvBuffer,
619  vtkIdType sendLength, vtkIdType* recvLengths, vtkIdType* offsets,
620  int destProcessId) {
621  return this->Communicator->GatherV(sendBuffer, recvBuffer,
622  sendLength, recvLengths,
623  offsets, destProcessId);
624  }
625  int GatherV(const unsigned short* sendBuffer, unsigned short* recvBuffer,
626  vtkIdType sendLength, vtkIdType* recvLengths, vtkIdType* offsets,
627  int destProcessId) {
628  return this->Communicator->GatherV(sendBuffer, recvBuffer,
629  sendLength, recvLengths,
630  offsets, destProcessId);
631  }
632  int GatherV(const long* sendBuffer, long* recvBuffer,
633  vtkIdType sendLength, vtkIdType* recvLengths, vtkIdType* offsets,
634  int destProcessId) {
635  return this->Communicator->GatherV(sendBuffer, recvBuffer,
636  sendLength, recvLengths,
637  offsets, destProcessId);
638  }
639  int GatherV(const unsigned long* sendBuffer, unsigned long* recvBuffer,
640  vtkIdType sendLength, vtkIdType* recvLengths, vtkIdType* offsets,
641  int destProcessId) {
642  return this->Communicator->GatherV(sendBuffer, recvBuffer,
643  sendLength, recvLengths,
644  offsets, destProcessId);
645  }
646  int GatherV(const unsigned char* sendBuffer, unsigned char* recvBuffer,
647  vtkIdType sendLength, vtkIdType* recvLengths, vtkIdType* offsets,
648  int destProcessId) {
649  return this->Communicator->GatherV(sendBuffer, recvBuffer,
650  sendLength, recvLengths,
651  offsets, destProcessId);
652  }
653  int GatherV(const char* sendBuffer, char* recvBuffer,
654  vtkIdType sendLength, vtkIdType* recvLengths, vtkIdType* offsets,
655  int destProcessId) {
656  return this->Communicator->GatherV(sendBuffer, recvBuffer,
657  sendLength, recvLengths,
658  offsets, destProcessId);
659  }
660  int GatherV(const signed char* sendBuffer, signed char* recvBuffer,
661  vtkIdType sendLength, vtkIdType* recvLengths, vtkIdType* offsets,
662  int destProcessId) {
663  return this->Communicator->GatherV(sendBuffer, recvBuffer,
664  sendLength, recvLengths,
665  offsets, destProcessId);
666  }
667  int GatherV(const float* sendBuffer, float* recvBuffer,
668  vtkIdType sendLength, vtkIdType* recvLengths, vtkIdType* offsets,
669  int destProcessId) {
670  return this->Communicator->GatherV(sendBuffer, recvBuffer,
671  sendLength, recvLengths,
672  offsets, destProcessId);
673  }
674  int GatherV(const double* sendBuffer, double* recvBuffer,
675  vtkIdType sendLength, vtkIdType* recvLengths, vtkIdType* offsets,
676  int destProcessId) {
677  return this->Communicator->GatherV(sendBuffer, recvBuffer,
678  sendLength, recvLengths,
679  offsets, destProcessId);
680  }
681 #ifdef VTK_USE_64BIT_IDS
682  int GatherV(const vtkIdType* sendBuffer, vtkIdType* recvBuffer,
683  vtkIdType sendLength, vtkIdType* recvLengths, vtkIdType* offsets,
684  int destProcessId) {
685  return this->Communicator->GatherV(sendBuffer, recvBuffer,
686  sendLength, recvLengths,
687  offsets, destProcessId);
688  }
689 #else
690  int GatherV(const long long* sendBuffer, long long* recvBuffer,
691  vtkIdType sendLength, vtkIdType* recvLengths, vtkIdType* offsets,
692  int destProcessId) {
693  return this->Communicator->GatherV(sendBuffer, recvBuffer,
694  sendLength, recvLengths,
695  offsets, destProcessId);
696  }
697 #endif
698  int GatherV(const unsigned long long* sendBuffer, unsigned long long* recvBuffer,
699  vtkIdType sendLength, vtkIdType* recvLengths, vtkIdType* offsets,
700  int destProcessId) {
701  return this->Communicator->GatherV(sendBuffer, recvBuffer,
702  sendLength, recvLengths,
703  offsets, destProcessId);
704  }
706 
707  int GatherV(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer,
708  vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId) {
709  return this->Communicator->GatherV(sendBuffer, recvBuffer,
710  recvLengths, offsets,
711  destProcessId);
712  }
713  int GatherV(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer,
714  vtkIdTypeArray* recvLengths,
715  vtkIdTypeArray* offsets,
716  int destProcessId)
717  {
718  return this->Communicator->GatherV(sendBuffer, recvBuffer,
719  recvLengths, offsets, destProcessId);
720  }
721 
722 
724 
729  int GatherV(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer,
730  int destProcessId) {
731  return this->Communicator->GatherV(sendBuffer, recvBuffer, destProcessId);
732  }
734  int destProcessId)
735  {
736  return this->Communicator->GatherV(sendData, recvData, destProcessId);
737  }
739 
741 
746  int Scatter(const int *sendBuffer, int *recvBuffer,
747  vtkIdType length, int srcProcessId) {
748  return this->Communicator->Scatter(sendBuffer, recvBuffer, length,
749  srcProcessId);
750  }
751  int Scatter(const unsigned int *sendBuffer, unsigned int *recvBuffer,
752  vtkIdType length, int srcProcessId) {
753  return this->Communicator->Scatter(sendBuffer, recvBuffer, length,
754  srcProcessId);
755  }
756  int Scatter(const short *sendBuffer, short *recvBuffer,
757  vtkIdType length, int srcProcessId) {
758  return this->Communicator->Scatter(sendBuffer, recvBuffer, length,
759  srcProcessId);
760  }
761  int Scatter(const unsigned short *sendBuffer, unsigned short *recvBuffer,
762  vtkIdType length, int srcProcessId) {
763  return this->Communicator->Scatter(sendBuffer, recvBuffer, length,
764  srcProcessId);
765  }
766  int Scatter(const long *sendBuffer, long *recvBuffer,
767  vtkIdType length, int srcProcessId) {
768  return this->Communicator->Scatter(sendBuffer, recvBuffer, length,
769  srcProcessId);
770  }
771  int Scatter(const unsigned long *sendBuffer, unsigned long *recvBuffer,
772  vtkIdType length, int srcProcessId) {
773  return this->Communicator->Scatter(sendBuffer, recvBuffer, length,
774  srcProcessId);
775  }
776  int Scatter(const unsigned char *sendBuffer, unsigned char *recvBuffer,
777  vtkIdType length, int srcProcessId) {
778  return this->Communicator->Scatter(sendBuffer, recvBuffer, length,
779  srcProcessId);
780  }
781  int Scatter(const char *sendBuffer, char *recvBuffer,
782  vtkIdType length, int srcProcessId) {
783  return this->Communicator->Scatter(sendBuffer, recvBuffer, length,
784  srcProcessId);
785  }
786  int Scatter(const signed char *sendBuffer, signed char *recvBuffer,
787  vtkIdType length, int srcProcessId) {
788  return this->Communicator->Scatter(sendBuffer, recvBuffer, length,
789  srcProcessId);
790  }
791  int Scatter(const float *sendBuffer, float *recvBuffer,
792  vtkIdType length, int srcProcessId) {
793  return this->Communicator->Scatter(sendBuffer, recvBuffer, length,
794  srcProcessId);
795  }
796  int Scatter(const double *sendBuffer, double *recvBuffer,
797  vtkIdType length, int srcProcessId) {
798  return this->Communicator->Scatter(sendBuffer, recvBuffer, length,
799  srcProcessId);
800  }
801 #ifdef VTK_USE_64BIT_IDS
802  int Scatter(const vtkIdType *sendBuffer, vtkIdType *recvBuffer,
803  vtkIdType length, int srcProcessId) {
804  return this->Communicator->Scatter(sendBuffer, recvBuffer, length,
805  srcProcessId);
806  }
807 #else
808  int Scatter(const long long *sendBuffer, long long *recvBuffer,
809  vtkIdType length, int srcProcessId) {
810  return this->Communicator->Scatter(sendBuffer, recvBuffer, length,
811  srcProcessId);
812  }
813 #endif
814  int Scatter(const unsigned long long *sendBuffer, unsigned long long *recvBuffer,
815  vtkIdType length, int srcProcessId) {
816  return this->Communicator->Scatter(sendBuffer, recvBuffer, length,
817  srcProcessId);
818  }
819  int Scatter(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer,
820  int srcProcessId) {
821  return this->Communicator->Scatter(sendBuffer, recvBuffer, srcProcessId);
822  }
824 
826 
832  int ScatterV(const int *sendBuffer, int *recvBuffer,
833  vtkIdType *sendLengths, vtkIdType *offsets,
834  vtkIdType recvLength, int srcProcessId) {
835  return this->Communicator->ScatterV(sendBuffer, recvBuffer,
836  sendLengths, offsets, recvLength,
837  srcProcessId);
838  }
839  int ScatterV(const unsigned int *sendBuffer, unsigned int *recvBuffer,
840  vtkIdType *sendLengths, vtkIdType *offsets,
841  vtkIdType recvLength, int srcProcessId) {
842  return this->Communicator->ScatterV(sendBuffer, recvBuffer,
843  sendLengths, offsets, recvLength,
844  srcProcessId);
845  }
846  int ScatterV(const short *sendBuffer, short *recvBuffer,
847  vtkIdType *sendLengths, vtkIdType *offsets,
848  vtkIdType recvLength, int srcProcessId) {
849  return this->Communicator->ScatterV(sendBuffer, recvBuffer,
850  sendLengths, offsets, recvLength,
851  srcProcessId);
852  }
853  int ScatterV(const unsigned short *sendBuffer, unsigned short *recvBuffer,
854  vtkIdType *sendLengths, vtkIdType *offsets,
855  vtkIdType recvLength, int srcProcessId) {
856  return this->Communicator->ScatterV(sendBuffer, recvBuffer,
857  sendLengths, offsets, recvLength,
858  srcProcessId);
859  }
860  int ScatterV(const long *sendBuffer, long *recvBuffer,
861  vtkIdType *sendLengths, vtkIdType *offsets,
862  vtkIdType recvLength, int srcProcessId) {
863  return this->Communicator->ScatterV(sendBuffer, recvBuffer,
864  sendLengths, offsets, recvLength,
865  srcProcessId);
866  }
867  int ScatterV(const unsigned long *sendBuffer, unsigned long *recvBuffer,
868  vtkIdType *sendLengths, vtkIdType *offsets,
869  vtkIdType recvLength, int srcProcessId) {
870  return this->Communicator->ScatterV(sendBuffer, recvBuffer,
871  sendLengths, offsets, recvLength,
872  srcProcessId);
873  }
874  int ScatterV(const unsigned char *sendBuffer, unsigned char *recvBuffer,
875  vtkIdType *sendLengths, vtkIdType *offsets,
876  vtkIdType recvLength, int srcProcessId) {
877  return this->Communicator->ScatterV(sendBuffer, recvBuffer,
878  sendLengths, offsets, recvLength,
879  srcProcessId);
880  }
881  int ScatterV(const char *sendBuffer, char *recvBuffer,
882  vtkIdType *sendLengths, vtkIdType *offsets,
883  vtkIdType recvLength, int srcProcessId) {
884  return this->Communicator->ScatterV(sendBuffer, recvBuffer,
885  sendLengths, offsets, recvLength,
886  srcProcessId);
887  }
888  int ScatterV(const signed char *sendBuffer, signed char *recvBuffer,
889  vtkIdType *sendLengths, vtkIdType *offsets,
890  vtkIdType recvLength, int srcProcessId) {
891  return this->Communicator->ScatterV(sendBuffer, recvBuffer,
892  sendLengths, offsets, recvLength,
893  srcProcessId);
894  }
895  int ScatterV(const float *sendBuffer, float *recvBuffer,
896  vtkIdType *sendLengths, vtkIdType *offsets,
897  vtkIdType recvLength, int srcProcessId) {
898  return this->Communicator->ScatterV(sendBuffer, recvBuffer,
899  sendLengths, offsets, recvLength,
900  srcProcessId);
901  }
902  int ScatterV(const double *sendBuffer, double *recvBuffer,
903  vtkIdType *sendLengths, vtkIdType *offsets,
904  vtkIdType recvLength, int srcProcessId) {
905  return this->Communicator->ScatterV(sendBuffer, recvBuffer,
906  sendLengths, offsets, recvLength,
907  srcProcessId);
908  }
909 #ifdef VTK_USE_64BIT_IDS
910  int ScatterV(const vtkIdType *sendBuffer, vtkIdType *recvBuffer,
911  vtkIdType *sendLengths, vtkIdType *offsets,
912  vtkIdType recvLength, int srcProcessId) {
913  return this->Communicator->ScatterV(sendBuffer, recvBuffer,
914  sendLengths, offsets, recvLength,
915  srcProcessId);
916  }
917 #else
918  int ScatterV(const long long *sendBuffer, long long *recvBuffer,
919  vtkIdType *sendLengths, vtkIdType *offsets,
920  vtkIdType recvLength, int srcProcessId) {
921  return this->Communicator->ScatterV(sendBuffer, recvBuffer,
922  sendLengths, offsets, recvLength,
923  srcProcessId);
924  }
925 #endif
926  int ScatterV(const unsigned long long *sendBuffer, unsigned long long *recvBuffer,
927  vtkIdType *sendLengths, vtkIdType *offsets,
928  vtkIdType recvLength, int srcProcessId) {
929  return this->Communicator->ScatterV(sendBuffer, recvBuffer,
930  sendLengths, offsets, recvLength,
931  srcProcessId);
932  }
934 
936 
937  int AllGather(const int *sendBuffer, int *recvBuffer, vtkIdType length) {
938  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
939  }
940  int AllGather(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length) {
941  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
942  }
943  int AllGather(const short *sendBuffer, short *recvBuffer, vtkIdType length) {
944  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
945  }
946  int AllGather(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length) {
947  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
948  }
949  int AllGather(const long *sendBuffer, long *recvBuffer, vtkIdType length) {
950  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
951  }
952  int AllGather(const unsigned long *sendBuffer,
953  unsigned long *recvBuffer, vtkIdType length) {
954  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
955  }
956  int AllGather(const unsigned char *sendBuffer,
957  unsigned char *recvBuffer, vtkIdType length) {
958  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
959  }
960  int AllGather(const char *sendBuffer, char *recvBuffer, vtkIdType length) {
961  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
962  }
963  int AllGather(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length) {
964  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
965  }
966  int AllGather(const float *sendBuffer, float *recvBuffer, vtkIdType length) {
967  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
968  }
969  int AllGather(const double *sendBuffer,
970  double *recvBuffer, vtkIdType length) {
971  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
972  }
973 #ifdef VTK_USE_64BIT_IDS
974  int AllGather(const vtkIdType *sendBuffer, vtkIdType *recvBuffer,
975  vtkIdType length) {
976  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
977  }
978 #else
979  int AllGather(const long long *sendBuffer, long long *recvBuffer, vtkIdType length) {
980  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
981  }
982 #endif
983  int AllGather(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length) {
984  return this->Communicator->AllGather(sendBuffer, recvBuffer, length);
985  }
986  int AllGather(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer) {
987  return this->Communicator->AllGather(sendBuffer, recvBuffer);
988  }
990 
992 
993  int AllGatherV(const int* sendBuffer, int* recvBuffer,
994  vtkIdType sendLength, vtkIdType* recvLengths,
995  vtkIdType* offsets) {
996  return this->Communicator->AllGatherV(sendBuffer, recvBuffer,
997  sendLength, recvLengths,
998  offsets);
999  }
1000  int AllGatherV(const unsigned int* sendBuffer, unsigned int* recvBuffer,
1001  vtkIdType sendLength, vtkIdType* recvLengths,
1002  vtkIdType* offsets) {
1003  return this->Communicator->AllGatherV(sendBuffer, recvBuffer,
1004  sendLength, recvLengths,
1005  offsets);
1006  }
1007  int AllGatherV(const short* sendBuffer, short* recvBuffer,
1008  vtkIdType sendLength, vtkIdType* recvLengths,
1009  vtkIdType* offsets) {
1010  return this->Communicator->AllGatherV(sendBuffer, recvBuffer,
1011  sendLength, recvLengths,
1012  offsets);
1013  }
1014  int AllGatherV(const unsigned short* sendBuffer, unsigned short* recvBuffer,
1015  vtkIdType sendLength, vtkIdType* recvLengths,
1016  vtkIdType* offsets) {
1017  return this->Communicator->AllGatherV(sendBuffer, recvBuffer,
1018  sendLength, recvLengths,
1019  offsets);
1020  }
1021  int AllGatherV(const long* sendBuffer, long* recvBuffer,
1022  vtkIdType sendLength, vtkIdType* recvLengths,
1023  vtkIdType* offsets) {
1024  return this->Communicator->AllGatherV(sendBuffer, recvBuffer,
1025  sendLength, recvLengths,
1026  offsets);
1027  }
1028  int AllGatherV(const unsigned long* sendBuffer, unsigned long* recvBuffer,
1029  vtkIdType sendLength, vtkIdType* recvLengths,
1030  vtkIdType* offsets) {
1031  return this->Communicator->AllGatherV(sendBuffer, recvBuffer,
1032  sendLength, recvLengths,
1033  offsets);
1034  }
1035  int AllGatherV(const unsigned char* sendBuffer, unsigned char* recvBuffer,
1036  vtkIdType sendLength, vtkIdType* recvLengths,
1037  vtkIdType* offsets) {
1038  return this->Communicator->AllGatherV(sendBuffer, recvBuffer,
1039  sendLength, recvLengths,
1040  offsets);
1041  }
1042  int AllGatherV(const char* sendBuffer, char* recvBuffer,
1043  vtkIdType sendLength, vtkIdType* recvLengths,
1044  vtkIdType* offsets) {
1045  return this->Communicator->AllGatherV(sendBuffer, recvBuffer,
1046  sendLength, recvLengths,
1047  offsets);
1048  }
1049  int AllGatherV(const signed char* sendBuffer, signed char* recvBuffer,
1050  vtkIdType sendLength, vtkIdType* recvLengths,
1051  vtkIdType* offsets) {
1052  return this->Communicator->AllGatherV(sendBuffer, recvBuffer,
1053  sendLength, recvLengths,
1054  offsets);
1055  }
1056  int AllGatherV(const float* sendBuffer, float* recvBuffer,
1057  vtkIdType sendLength, vtkIdType* recvLengths,
1058  vtkIdType* offsets) {
1059  return this->Communicator->AllGatherV(sendBuffer, recvBuffer,
1060  sendLength, recvLengths,
1061  offsets);
1062  }
1063  int AllGatherV(const double* sendBuffer, double* recvBuffer,
1064  vtkIdType sendLength, vtkIdType* recvLengths,
1065  vtkIdType* offsets) {
1066  return this->Communicator->AllGatherV(sendBuffer, recvBuffer,
1067  sendLength, recvLengths,
1068  offsets);
1069  }
1070 #ifdef VTK_USE_64BIT_IDS
1071  int AllGatherV(const vtkIdType* sendBuffer, vtkIdType* recvBuffer,
1072  vtkIdType sendLength, vtkIdType* recvLengths,
1073  vtkIdType* offsets) {
1074  return this->Communicator->AllGatherV(sendBuffer, recvBuffer,
1075  sendLength, recvLengths,
1076  offsets);
1077  }
1078 #else
1079  int AllGatherV(const long long* sendBuffer, long long* recvBuffer,
1080  vtkIdType sendLength, vtkIdType* recvLengths,
1081  vtkIdType* offsets) {
1082  return this->Communicator->AllGatherV(sendBuffer, recvBuffer,
1083  sendLength, recvLengths,
1084  offsets);
1085  }
1086 #endif
1087  int AllGatherV(const unsigned long long* sendBuffer, unsigned long long* recvBuffer,
1088  vtkIdType sendLength, vtkIdType* recvLengths,
1089  vtkIdType* offsets) {
1090  return this->Communicator->AllGatherV(sendBuffer, recvBuffer,
1091  sendLength, recvLengths,
1092  offsets);
1093  }
1094  int AllGatherV(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer,
1095  vtkIdType *recvLengths, vtkIdType *offsets) {
1096  return this->Communicator->AllGatherV(sendBuffer, recvBuffer,
1097  recvLengths, offsets);
1098  }
1100 
1102 
1107  int AllGatherV(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer) {
1108  return this->Communicator->AllGatherV(sendBuffer, recvBuffer);
1109  }
1111 
1113 
1116  int Reduce(const int *sendBuffer, int *recvBuffer,
1117  vtkIdType length, int operation, int destProcessId) {
1118  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1119  operation, destProcessId);
1120  }
1121  int Reduce(const unsigned int *sendBuffer, unsigned int *recvBuffer,
1122  vtkIdType length, int operation, int destProcessId) {
1123  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1124  operation, destProcessId);
1125  }
1126  int Reduce(const short *sendBuffer, short *recvBuffer,
1127  vtkIdType length, int operation, int destProcessId) {
1128  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1129  operation, destProcessId);
1130  }
1131  int Reduce(const unsigned short *sendBuffer, unsigned short *recvBuffer,
1132  vtkIdType length, int operation, int destProcessId) {
1133  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1134  operation, destProcessId);
1135  }
1136  int Reduce(const long *sendBuffer, long *recvBuffer,
1137  vtkIdType length, int operation, int destProcessId) {
1138  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1139  operation, destProcessId);
1140  }
1141  int Reduce(const unsigned long *sendBuffer, unsigned long *recvBuffer,
1142  vtkIdType length, int operation, int destProcessId) {
1143  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1144  operation, destProcessId);
1145  }
1146  int Reduce(const unsigned char *sendBuffer, unsigned char *recvBuffer,
1147  vtkIdType length, int operation, int destProcessId) {
1148  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1149  operation, destProcessId);
1150  }
1151  int Reduce(const char *sendBuffer, char *recvBuffer,
1152  vtkIdType length, int operation, int destProcessId) {
1153  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1154  operation, destProcessId);
1155  }
1156  int Reduce(const signed char *sendBuffer, signed char *recvBuffer,
1157  vtkIdType length, int operation, int destProcessId) {
1158  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1159  operation, destProcessId);
1160  }
1161  int Reduce(const float *sendBuffer, float *recvBuffer,
1162  vtkIdType length, int operation, int destProcessId) {
1163  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1164  operation, destProcessId);
1165  }
1166  int Reduce(const double *sendBuffer, double *recvBuffer,
1167  vtkIdType length, int operation, int destProcessId) {
1168  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1169  operation, destProcessId);
1170  }
1171 #ifdef VTK_USE_64BIT_IDS
1172  int Reduce(const vtkIdType *sendBuffer, vtkIdType *recvBuffer,
1173  vtkIdType length, int operation, int destProcessId) {
1174  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1175  operation, destProcessId);
1176  }
1177 #else
1178  int Reduce(const long long *sendBuffer, long long *recvBuffer,
1179  vtkIdType length, int operation, int destProcessId) {
1180  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1181  operation, destProcessId);
1182  }
1183 #endif
1184  int Reduce(const unsigned long long *sendBuffer, unsigned long long *recvBuffer,
1185  vtkIdType length, int operation, int destProcessId) {
1186  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1187  operation, destProcessId);
1188  }
1189  int Reduce(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer,
1190  int operation, int destProcessId) {
1191  return this->Communicator->Reduce(sendBuffer, recvBuffer,
1192  operation, destProcessId);
1193  }
1195 
1196 //BTX
1198 
1201  int Reduce(const int *sendBuffer, int *recvBuffer,
1202  vtkIdType length, vtkCommunicator::Operation *operation,
1203  int destProcessId) {
1204  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1205  operation, destProcessId);
1206  }
1207  int Reduce(const unsigned int *sendBuffer, unsigned int *recvBuffer,
1208  vtkIdType length, vtkCommunicator::Operation *operation,
1209  int destProcessId) {
1210  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1211  operation, destProcessId);
1212  }
1213  int Reduce(const short *sendBuffer, short *recvBuffer,
1214  vtkIdType length, vtkCommunicator::Operation *operation,
1215  int destProcessId) {
1216  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1217  operation, destProcessId);
1218  }
1219  int Reduce(const unsigned short *sendBuffer, unsigned short *recvBuffer,
1220  vtkIdType length, vtkCommunicator::Operation *operation,
1221  int destProcessId) {
1222  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1223  operation, destProcessId);
1224  }
1225  int Reduce(const long *sendBuffer, long *recvBuffer,
1226  vtkIdType length, vtkCommunicator::Operation *operation,
1227  int destProcessId) {
1228  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1229  operation, destProcessId);
1230  }
1231  int Reduce(const unsigned long *sendBuffer, unsigned long *recvBuffer,
1232  vtkIdType length, vtkCommunicator::Operation *operation,
1233  int destProcessId) {
1234  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1235  operation, destProcessId);
1236  }
1237  int Reduce(const unsigned char *sendBuffer, unsigned char *recvBuffer,
1238  vtkIdType length, vtkCommunicator::Operation *operation,
1239  int destProcessId) {
1240  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1241  operation, destProcessId);
1242  }
1243  int Reduce(const char *sendBuffer, char *recvBuffer,
1244  vtkIdType length, vtkCommunicator::Operation *operation,
1245  int destProcessId) {
1246  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1247  operation, destProcessId);
1248  }
1249  int Reduce(const signed char *sendBuffer, signed char *recvBuffer,
1250  vtkIdType length, vtkCommunicator::Operation *operation,
1251  int destProcessId) {
1252  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1253  operation, destProcessId);
1254  }
1255  int Reduce(const float *sendBuffer, float *recvBuffer,
1256  vtkIdType length, vtkCommunicator::Operation *operation,
1257  int destProcessId) {
1258  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1259  operation, destProcessId);
1260  }
1261  int Reduce(const double *sendBuffer, double *recvBuffer,
1262  vtkIdType length, vtkCommunicator::Operation *operation,
1263  int destProcessId) {
1264  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1265  operation, destProcessId);
1266  }
1267 #ifdef VTK_USE_64BIT_IDS
1268  int Reduce(const vtkIdType *sendBuffer, vtkIdType *recvBuffer,
1269  vtkIdType length, vtkCommunicator::Operation *operation,
1270  int destProcessId) {
1271  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1272  operation, destProcessId);
1273  }
1274 #else
1275  int Reduce(const long long *sendBuffer, long long *recvBuffer,
1276  vtkIdType length, vtkCommunicator::Operation *operation,
1277  int destProcessId) {
1278  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1279  operation, destProcessId);
1280  }
1281 #endif
1282  int Reduce(const unsigned long long *sendBuffer, unsigned long long *recvBuffer,
1283  vtkIdType length, vtkCommunicator::Operation *operation,
1284  int destProcessId) {
1285  return this->Communicator->Reduce(sendBuffer, recvBuffer, length,
1286  operation, destProcessId);
1287  }
1288  int Reduce(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer,
1289  vtkCommunicator::Operation *operation, int destProcessId) {
1290  return this->Communicator->Reduce(sendBuffer, recvBuffer,
1291  operation, destProcessId);
1292  }
1293 //ETX
1295 
1297 
1299  int AllReduce(const int *sendBuffer, int *recvBuffer,
1300  vtkIdType length, int operation) {
1301  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1302  operation);
1303  }
1304  int AllReduce(const unsigned int *sendBuffer, unsigned int *recvBuffer,
1305  vtkIdType length, int operation) {
1306  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1307  operation);
1308  }
1309  int AllReduce(const short *sendBuffer, short *recvBuffer,
1310  vtkIdType length, int operation) {
1311  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1312  operation);
1313  }
1314  int AllReduce(const unsigned short *sendBuffer, unsigned short *recvBuffer,
1315  vtkIdType length, int operation) {
1316  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1317  operation);
1318  }
1319  int AllReduce(const long *sendBuffer, long *recvBuffer,
1320  vtkIdType length, int operation) {
1321  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1322  operation);
1323  }
1324  int AllReduce(const unsigned long *sendBuffer, unsigned long *recvBuffer,
1325  vtkIdType length, int operation) {
1326  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1327  operation);
1328  }
1329  int AllReduce(const unsigned char *sendBuffer, unsigned char *recvBuffer,
1330  vtkIdType length, int operation) {
1331  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1332  operation);
1333  }
1334  int AllReduce(const char *sendBuffer, char *recvBuffer,
1335  vtkIdType length, int operation) {
1336  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1337  operation);
1338  }
1339  int AllReduce(const signed char *sendBuffer, signed char *recvBuffer,
1340  vtkIdType length, int operation) {
1341  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1342  operation);
1343  }
1344  int AllReduce(const float *sendBuffer, float *recvBuffer,
1345  vtkIdType length, int operation) {
1346  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1347  operation);
1348  }
1349  int AllReduce(const double *sendBuffer, double *recvBuffer,
1350  vtkIdType length, int operation) {
1351  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1352  operation);
1353  }
1354 #ifdef VTK_USE_64BIT_IDS
1355  int AllReduce(const vtkIdType *sendBuffer, vtkIdType *recvBuffer,
1356  vtkIdType length, int operation) {
1357  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1358  operation);
1359  }
1360 #else
1361  int AllReduce(const long long *sendBuffer, long long *recvBuffer,
1362  vtkIdType length, int operation) {
1363  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1364  operation);
1365  }
1366 #endif
1367  int AllReduce(const unsigned long long *sendBuffer, unsigned long long *recvBuffer,
1368  vtkIdType length, int operation) {
1369  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1370  operation);
1371  }
1372  int AllReduce(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer,
1373  int operation) {
1374  return this->Communicator->AllReduce(sendBuffer, recvBuffer, operation);
1375  }
1376 //BTX
1377  int AllReduce(const int *sendBuffer, int *recvBuffer,
1378  vtkIdType length, vtkCommunicator::Operation *operation) {
1379  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1380  operation);
1381  }
1382  int AllReduce(const unsigned int *sendBuffer, unsigned int *recvBuffer,
1383  vtkIdType length, vtkCommunicator::Operation *operation) {
1384  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1385  operation);
1386  }
1387  int AllReduce(const short *sendBuffer, short *recvBuffer,
1388  vtkIdType length, vtkCommunicator::Operation *operation) {
1389  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1390  operation);
1391  }
1392  int AllReduce(const unsigned short *sendBuffer, unsigned short *recvBuffer,
1393  vtkIdType length, vtkCommunicator::Operation *operation) {
1394  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1395  operation);
1396  }
1397  int AllReduce(const long *sendBuffer, long *recvBuffer,
1398  vtkIdType length, vtkCommunicator::Operation *operation) {
1399  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1400  operation);
1401  }
1402  int AllReduce(const unsigned long *sendBuffer, unsigned long *recvBuffer,
1403  vtkIdType length, vtkCommunicator::Operation *operation) {
1404  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1405  operation);
1406  }
1407  int AllReduce(const unsigned char *sendBuffer, unsigned char *recvBuffer,
1408  vtkIdType length, vtkCommunicator::Operation *operation) {
1409  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1410  operation);
1411  }
1412  int AllReduce(const char *sendBuffer, char *recvBuffer,
1413  vtkIdType length, vtkCommunicator::Operation *operation) {
1414  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1415  operation);
1416  }
1417  int AllReduce(const signed char *sendBuffer, signed char *recvBuffer,
1418  vtkIdType length, vtkCommunicator::Operation *operation) {
1419  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1420  operation);
1421  }
1422  int AllReduce(const float *sendBuffer, float *recvBuffer,
1423  vtkIdType length, vtkCommunicator::Operation *operation) {
1424  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1425  operation);
1426  }
1427  int AllReduce(const double *sendBuffer, double *recvBuffer,
1428  vtkIdType length, vtkCommunicator::Operation *operation) {
1429  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1430  operation);
1431  }
1432 #ifdef VTK_USE_64BIT_IDS
1433  int AllReduce(const vtkIdType *sendBuffer, vtkIdType *recvBuffer,
1434  vtkIdType length, vtkCommunicator::Operation *operation) {
1435  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1436  operation);
1437  }
1438 #else
1439  int AllReduce(const long long *sendBuffer, long long *recvBuffer,
1440  vtkIdType length, vtkCommunicator::Operation *operation) {
1441  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1442  operation);
1443  }
1444 #endif
1445  int AllReduce(const unsigned long long *sendBuffer, unsigned long long *recvBuffer,
1446  vtkIdType length, vtkCommunicator::Operation *operation) {
1447  return this->Communicator->AllReduce(sendBuffer, recvBuffer, length,
1448  operation);
1449  }
1450  int AllReduce(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer,
1451  vtkCommunicator::Operation *operation) {
1452  return this->Communicator->AllReduce(sendBuffer, recvBuffer, operation);
1453  }
1454 //ETX
1456 
1457 // Internally implemented RMI to break the process loop.
1458 
1459 protected:
1462 
1464 
1467  virtual void TriggerRMIInternal(int remoteProcessId,
1468  void* arg, int argLength, int rmiTag, bool propagate);
1470 
1472  void *SingleData;
1473 
1474  void GetMultipleMethod(int index, vtkProcessFunctionType &func, void *&data);
1475 
1476  // This is a flag that can be used by the ports to break
1477  // their update loop. (same as ProcessRMIs)
1479 
1480  void ProcessRMI(int remoteProcessId, void *arg, int argLength, int rmiTag);
1481 
1482  // This method implements "GetGlobalController".
1483  // It needs to be virtual and static.
1484  virtual vtkMultiProcessController *GetLocalController();
1485 
1486 
1487  // This flag can force deep copies during send.
1489 
1490  // This flag can be used to indicate that an MPI Broadcast will be used
1491  // when calling TriggerRMIOnAllChildren(), instead of the binary tree
1492  // propagation of the data to the sattelite ranks from rank 0.
1494 
1496 
1497  // Note that since the communicators can be created differently
1498  // depending on the type of controller, the subclasses are
1499  // responsible of deleting them.
1501 
1502  // Communicator which is a copy of the current user
1503  // level communicator except the context; i.e. even if the tags
1504  // are the same, the RMI messages will not interfere with user
1505  // level messages.
1506  // Note that since the communicators can be created differently
1507  // depending on the type of controller, the subclasses are
1508  // responsible of deleting them.
1510 
1511 private:
1512  vtkMultiProcessController(const vtkMultiProcessController&); // Not implemented.
1513  void operator=(const vtkMultiProcessController&); // Not implemented.
1514 
1515  unsigned long RMICount;
1516 
1517 //BTX
1518  class vtkInternal;
1519  vtkInternal *Internal;
1520 //ETX
1521 };
1522 
1523 
1525  int remoteProcessId, int tag)
1526 {
1527  if (this->Communicator)
1528  {
1529  return this->Communicator->Send(data, remoteProcessId, tag);
1530  }
1531  else
1532  {
1533  return 0;
1534  }
1535 }
1536 
1538  int remoteProcessId, int tag)
1539 {
1540  if (this->Communicator)
1541  {
1542  return this->Communicator->Send(data, remoteProcessId, tag);
1543  }
1544  else
1545  {
1546  return 0;
1547  }
1548 }
1549 
1550 inline int vtkMultiProcessController::Send(const int* data, vtkIdType length,
1551  int remoteProcessId, int tag)
1552 {
1553  if (this->Communicator)
1554  {
1555  return this->Communicator->Send(data, length, remoteProcessId, tag);
1556  }
1557  else
1558  {
1559  return 0;
1560  }
1561 }
1562 
1563 inline int vtkMultiProcessController::Send(const short* data, vtkIdType length,
1564  int remoteProcessId, int tag)
1565 {
1566  if (this->Communicator)
1567  {
1568  return this->Communicator->Send(data, length, remoteProcessId, tag);
1569  }
1570  else
1571  {
1572  return 0;
1573  }
1574 }
1575 
1576 inline int vtkMultiProcessController::Send(const unsigned short* data, vtkIdType length,
1577  int remoteProcessId, int tag)
1578 {
1579  if (this->Communicator)
1580  {
1581  return this->Communicator->Send(data, length, remoteProcessId, tag);
1582  }
1583  else
1584  {
1585  return 0;
1586  }
1587 }
1588 
1589 inline int vtkMultiProcessController::Send(const unsigned int* data, vtkIdType length,
1590  int remoteProcessId, int tag)
1591 {
1592  if (this->Communicator)
1593  {
1594  return this->Communicator->Send(data, length, remoteProcessId, tag);
1595  }
1596  else
1597  {
1598  return 0;
1599  }
1600 }
1601 
1602 inline int vtkMultiProcessController::Send(const unsigned long* data,
1603  vtkIdType length,
1604  int remoteProcessId,
1605  int tag)
1606 {
1607  if (this->Communicator)
1608  {
1609  return this->Communicator->Send(data, length, remoteProcessId, tag);
1610  }
1611  else
1612  {
1613  return 0;
1614  }
1615 }
1616 
1617 inline int vtkMultiProcessController::Send(const long* data,
1618  vtkIdType length,
1619  int remoteProcessId,
1620  int tag)
1621 {
1622  if (this->Communicator)
1623  {
1624  return this->Communicator->Send(data, length, remoteProcessId, tag);
1625  }
1626  else
1627  {
1628  return 0;
1629  }
1630 }
1631 
1632 inline int vtkMultiProcessController::Send(const signed char* data, vtkIdType length,
1633  int remoteProcessId, int tag)
1634 {
1635  if (this->Communicator)
1636  {
1637  return this->Communicator->Send(data, length, remoteProcessId, tag);
1638  }
1639  else
1640  {
1641  return 0;
1642  }
1643 }
1644 
1645 inline int vtkMultiProcessController::Send(const char* data, vtkIdType length,
1646  int remoteProcessId, int tag)
1647 {
1648  if (this->Communicator)
1649  {
1650  return this->Communicator->Send(data, length, remoteProcessId, tag);
1651  }
1652  else
1653  {
1654  return 0;
1655  }
1656 }
1657 
1658 inline int vtkMultiProcessController::Send(const unsigned char* data,
1659  vtkIdType length,
1660  int remoteProcessId, int tag)
1661 {
1662  if (this->Communicator)
1663  {
1664  return this->Communicator->Send(data, length, remoteProcessId, tag);
1665  }
1666  else
1667  {
1668  return 0;
1669  }
1670 }
1671 
1672 inline int vtkMultiProcessController::Send(const float* data, vtkIdType length,
1673  int remoteProcessId, int tag)
1674 {
1675  if (this->Communicator)
1676  {
1677  return this->Communicator->Send(data, length, remoteProcessId, tag);
1678  }
1679  else
1680  {
1681  return 0;
1682  }
1683 }
1684 
1685 inline int vtkMultiProcessController::Send(const double* data, vtkIdType length,
1686  int remoteProcessId, int tag)
1687 {
1688  if (this->Communicator)
1689  {
1690  return this->Communicator->Send(data, length, remoteProcessId, tag);
1691  }
1692  else
1693  {
1694  return 0;
1695  }
1696 }
1697 
1698 #ifdef VTK_USE_64BIT_IDS
1699 inline int vtkMultiProcessController::Send(const vtkIdType* data,
1700  vtkIdType length,
1701  int remoteProcessId, int tag)
1702 {
1703  if (this->Communicator)
1704  {
1705  return this->Communicator->Send(data, length, remoteProcessId, tag);
1706  }
1707  else
1708  {
1709  return 0;
1710  }
1711 }
1712 #else
1713 inline int vtkMultiProcessController::Send(const long long* data,
1714  vtkIdType length,
1715  int remoteProcessId, int tag)
1716 {
1717  if (this->Communicator)
1718  {
1719  return this->Communicator->Send(data, length, remoteProcessId, tag);
1720  }
1721  else
1722  {
1723  return 0;
1724  }
1725 }
1726 #endif
1727 
1728 inline int vtkMultiProcessController::Send(const unsigned long long* data,
1729  vtkIdType length,
1730  int remoteProcessId, int tag)
1731 {
1732  if (this->Communicator)
1733  {
1734  return this->Communicator->Send(data, length, remoteProcessId, tag);
1735  }
1736  else
1737  {
1738  return 0;
1739  }
1740 }
1741 
1743  int remoteId, int tag)
1744 {
1745  if (this->Communicator)
1746  {
1747  return this->Communicator->Send(stream, remoteId, tag);
1748  }
1749  return 0;
1750 }
1751 
1753  int remoteProcessId, int tag)
1754 {
1755  if (this->Communicator)
1756  {
1757  return this->Communicator->Receive(data, remoteProcessId, tag);
1758  }
1759  else
1760  {
1761  return 0;
1762  }
1763 }
1764 
1766  int remoteProcessId, int tag)
1767 {
1768  if (this->Communicator)
1769  {
1770  return this->Communicator->ReceiveDataObject(remoteProcessId, tag);
1771  }
1772  else
1773  {
1774  return 0;
1775  }
1776 }
1777 
1779  int remoteProcessId, int tag)
1780 {
1781  if (this->Communicator)
1782  {
1783  return this->Communicator->Receive(data, remoteProcessId, tag);
1784  }
1785  else
1786  {
1787  return 0;
1788  }
1789 }
1790 
1791 inline int vtkMultiProcessController::Receive(int* data, vtkIdType length,
1792  int remoteProcessId, int tag)
1793 {
1794  if (this->Communicator)
1795  {
1796  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1797  }
1798  else
1799  {
1800  return 0;
1801  }
1802 }
1803 
1804 inline int vtkMultiProcessController::Receive(unsigned int* data, vtkIdType length,
1805  int remoteProcessId, int tag)
1806 {
1807  if (this->Communicator)
1808  {
1809  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1810  }
1811  else
1812  {
1813  return 0;
1814  }
1815 }
1816 
1817 inline int vtkMultiProcessController::Receive(short* data, vtkIdType length,
1818  int remoteProcessId, int tag)
1819 {
1820  if (this->Communicator)
1821  {
1822  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1823  }
1824  else
1825  {
1826  return 0;
1827  }
1828 }
1829 
1830 inline int vtkMultiProcessController::Receive(unsigned short* data, vtkIdType length,
1831  int remoteProcessId, int tag)
1832 {
1833  if (this->Communicator)
1834  {
1835  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1836  }
1837  else
1838  {
1839  return 0;
1840  }
1841 }
1842 
1843 inline int vtkMultiProcessController::Receive(long* data, vtkIdType length,
1844  int remoteProcessId, int tag)
1845 {
1846  if (this->Communicator)
1847  {
1848  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1849  }
1850  else
1851  {
1852  return 0;
1853  }
1854 }
1855 
1856 
1857 inline int vtkMultiProcessController::Receive(unsigned long* data,
1858  vtkIdType length,
1859  int remoteProcessId,
1860  int tag)
1861 {
1862  if (this->Communicator)
1863  {
1864  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1865  }
1866  else
1867  {
1868  return 0;
1869  }
1870 }
1871 
1872 inline int vtkMultiProcessController::Receive(char* data, vtkIdType length,
1873  int remoteProcessId, int tag)
1874 {
1875  if (this->Communicator)
1876  {
1877  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1878  }
1879  else
1880  {
1881  return 0;
1882  }
1883 }
1884 
1885 inline int vtkMultiProcessController::Receive(unsigned char* data,
1886  vtkIdType length,
1887  int remoteProcessId, int tag)
1888 {
1889  if (this->Communicator)
1890  {
1891  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1892  }
1893  else
1894  {
1895  return 0;
1896  }
1897 }
1898 
1899 inline int vtkMultiProcessController::Receive(signed char* data, vtkIdType length,
1900  int remoteProcessId, int tag)
1901 {
1902  if (this->Communicator)
1903  {
1904  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1905  }
1906  else
1907  {
1908  return 0;
1909  }
1910 }
1911 
1912 
1913 inline int vtkMultiProcessController::Receive(float* data, vtkIdType length,
1914  int remoteProcessId, int tag)
1915 {
1916  if (this->Communicator)
1917  {
1918  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1919  }
1920  else
1921  {
1922  return 0;
1923  }
1924 }
1925 
1926 inline int vtkMultiProcessController::Receive(double* data, vtkIdType length,
1927  int remoteProcessId, int tag)
1928 {
1929  if (this->Communicator)
1930  {
1931  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1932  }
1933  else
1934  {
1935  return 0;
1936  }
1937 }
1938 
1939 #ifdef VTK_USE_64BIT_IDS
1941  vtkIdType length,
1942  int remoteProcessId, int tag)
1943 {
1944  if (this->Communicator)
1945  {
1946  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1947  }
1948  else
1949  {
1950  return 0;
1951  }
1952 }
1953 #else
1954 inline int vtkMultiProcessController::Receive(long long* data, vtkIdType length,
1955  int remoteProcessId, int tag)
1956 {
1957  if (this->Communicator)
1958  {
1959  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1960  }
1961  else
1962  {
1963  return 0;
1964  }
1965 }
1966 #endif
1967 
1968 inline int vtkMultiProcessController::Receive(unsigned long long* data, vtkIdType length,
1969  int remoteProcessId, int tag)
1970 {
1971  if (this->Communicator)
1972  {
1973  return this->Communicator->Receive(data, length, remoteProcessId, tag);
1974  }
1975  else
1976  {
1977  return 0;
1978  }
1979 }
1980 
1982  int remoteId, int tag)
1983 {
1984  if (this->Communicator)
1985  {
1986  return this->Communicator->Receive(stream, remoteId, tag);
1987  }
1988  return 0;
1989 }
1990 
1992 {
1993  if (this->Communicator)
1994  {
1995  this->Communicator->Barrier();
1996  }
1997 }
1998 
2000 {
2001  if (this->Communicator)
2002  {
2003  return this->Communicator->GetCount();
2004  }
2005  return 0;
2006 }
2007 
2008 #endif
int AllGather(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length)
int AllGather(const float *sendBuffer, float *recvBuffer, vtkIdType length)
int Scatter(const int *sendBuffer, int *recvBuffer, vtkIdType length, int srcProcessId)
void TriggerRMI(int remoteProcessId, int tag)
void(* vtkProcessFunctionType)(vtkMultiProcessController *controller, void *userData)
int Broadcast(short *data, vtkIdType length, int srcProcessId)
int Reduce(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length, int operation, int destProcessId)
int Reduce(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, int operation, int destProcessId)
int Send(vtkDataObject *data, int remoteHandle, int tag)
int Scatter(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length, int srcProcessId)
int AllGatherV(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, vtkIdType *recvLengths, vtkIdType *offsets)
int ScatterV(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
int Reduce(const long *sendBuffer, long *recvBuffer, vtkIdType length, int operation, int destProcessId)
int AllReduce(const int *sendBuffer, int *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
int Reduce(const long *sendBuffer, long *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
int Reduce(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, int operation, int destProcessId)
abstract base class for most VTK objects
Definition: vtkObject.h:61
int Gather(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length, int destProcessId)
int AllGather(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length)
int AllGatherV(const double *sendBuffer, double *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
int AllReduce(const long long *sendBuffer, long long *recvBuffer, vtkIdType length, int operation)
int Scatter(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length, int srcProcessId)
int ScatterV(const long long *sendBuffer, long long *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
int Reduce(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
int AllReduce(const char *sendBuffer, char *recvBuffer, vtkIdType length, int operation)
int AllGatherV(const long long *sendBuffer, long long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
int Scatter(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, int srcProcessId)
int Reduce(const int *sendBuffer, int *recvBuffer, vtkIdType length, int operation, int destProcessId)
int AllGather(const long *sendBuffer, long *recvBuffer, vtkIdType length)
int GatherV(const int *sendBuffer, int *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
stream used to pass data across processes using vtkMultiProcessController.
int Reduce(const char *sendBuffer, char *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
void TriggerRMIOnAllChildren(const char *arg, int tag)
int ScatterV(const double *sendBuffer, double *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
#define VTKPARALLELCORE_EXPORT
int Scatter(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, int srcProcessId)
abstract class to specify dataset behavior
Definition: vtkDataSet.h:61
int AllGatherV(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
int AllReduce(const float *sendBuffer, float *recvBuffer, vtkIdType length, int operation)
int GatherV(vtkDataObject *sendData, vtkSmartPointer< vtkDataObject > *recvData, int destProcessId)
int AllGatherV(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer)
int Gather(const long *sendBuffer, long *recvBuffer, vtkIdType length, int destProcessId)
int AllReduce(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, vtkCommunicator::Operation *operation)
a process that can be launched by a vtkMultiProcessController
Definition: vtkProcess.h:48
int GatherV(const double *sendBuffer, double *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
int AllReduce(const int *sendBuffer, int *recvBuffer, vtkIdType length, int operation)
int Reduce(const long long *sendBuffer, long long *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
int Reduce(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
int ScatterV(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
int Gather(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, int destProcessId)
int Gather(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, int destProcessId)
int AllGatherV(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
int Reduce(const short *sendBuffer, short *recvBuffer, vtkIdType length, int operation, int destProcessId)
int Broadcast(int *data, vtkIdType length, int srcProcessId)
int AllReduce(const char *sendBuffer, char *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
int AllGather(const short *sendBuffer, short *recvBuffer, vtkIdType length)
int AllReduce(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, int operation)
dynamic, self-adjusting array of vtkIdType
int AllReduce(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length, int operation)
int AllGather(const double *sendBuffer, double *recvBuffer, vtkIdType length)
int AllGather(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length)
int vtkIdType
Definition: vtkType.h:247
int ScatterV(const char *sendBuffer, char *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
int GatherV(const long long *sendBuffer, long long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
int Gather(const short *sendBuffer, short *recvBuffer, vtkIdType length, int destProcessId)
int Broadcast(unsigned long long *data, vtkIdType length, int srcProcessId)
int AllReduce(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, int operation)
int Reduce(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
int AllReduce(const long *sendBuffer, long *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
int Receive(vtkDataObject *data, int remoteHandle, int tag)
int Broadcast(vtkMultiProcessStream &stream, int srcProcessId)
int Reduce(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
int Scatter(const short *sendBuffer, short *recvBuffer, vtkIdType length, int srcProcessId)
int ScatterV(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
int AllGather(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length)
int AllGather(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length)
int Reduce(const double *sendBuffer, double *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
int AllGatherV(const int *sendBuffer, int *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
int Gather(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, int destProcessId)
int AllReduce(const long *sendBuffer, long *recvBuffer, vtkIdType length, int operation)
int Broadcast(char *data, vtkIdType length, int srcProcessId)
int AllReduce(const short *sendBuffer, short *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
int Scatter(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, int srcProcessId)
vtkDataObject * ReceiveDataObject(int remoteHandle, int tag)
int ScatterV(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
int Gather(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, int destProcessId)
int AllReduce(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
void(* vtkRMIFunctionType)(void *localArg, void *remoteArg, int remoteArgLength, int remoteProcessId)
int Gather(const float *sendBuffer, float *recvBuffer, vtkIdType length, int destProcessId)
int Reduce(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, int operation, int destProcessId)
void TriggerRMI(int remoteProcessId, const char *arg, int tag)
virtual void PrintSelf(ostream &os, vtkIndent indent)
int GatherV(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
int Reduce(const int *sendBuffer, int *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
int AllReduce(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
int Broadcast(float *data, vtkIdType length, int srcProcessId)
a simple class to control print indentation
Definition: vtkIndent.h:38
int GatherV(const short *sendBuffer, short *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
int AllReduce(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length, int operation)
int AllReduce(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, int operation)
topologically and geometrically regular array of data
Definition: vtkImageData.h:44
virtual void RemoveRMI(vtkRMIFunctionType f, void *arg, int tag)
int Reduce(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
virtual vtkIdType GetCount()
int AllReduce(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:54
A subgroup of processes from a communicator.
int AllReduce(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
int AllGatherV(const long *sendBuffer, long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
int Broadcast(vtkDataObject *data, int srcProcessId)
int Reduce(const short *sendBuffer, short *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
int AllGatherV(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
vtkDataObject * ReceiveDataObject(int remoteId, int tag)
int GatherV(const char *sendBuffer, char *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
int AllReduce(const double *sendBuffer, double *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
int AllGather(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer)
int AllGather(const int *sendBuffer, int *recvBuffer, vtkIdType length)
int GatherV(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
int ScatterV(const short *sendBuffer, short *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
int Broadcast(unsigned int *data, vtkIdType length, int srcProcessId)
int Scatter(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, int srcProcessId)
int GatherV(const long *sendBuffer, long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
base class for writing debug output to a console
int AllGatherV(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
int AllReduce(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, int operation)
int AllReduce(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
int Broadcast(unsigned char *data, vtkIdType length, int srcProcessId)
int Reduce(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, vtkCommunicator::Operation *operation, int destProcessId)
int GatherV(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, vtkIdTypeArray *recvLengths, vtkIdTypeArray *offsets, int destProcessId)
int GatherV(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
int AllReduce(const double *sendBuffer, double *recvBuffer, vtkIdType length, int operation)
int AllGatherV(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
int AllReduce(const short *sendBuffer, short *recvBuffer, vtkIdType length, int operation)
int AllReduce(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, int operation)
int Reduce(const double *sendBuffer, double *recvBuffer, vtkIdType length, int operation, int destProcessId)
virtual void Barrier()
int GatherV(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
int GatherV(const float *sendBuffer, float *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
int ScatterV(const float *sendBuffer, float *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
int ScatterV(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
int Send(const int *data, vtkIdType length, int remoteProcessId, int tag)
create and manipulate unsorted lists of objects
Definition: vtkCollection.h:52
int AllReduce(const long long *sendBuffer, long long *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
int Scatter(const float *sendBuffer, float *recvBuffer, vtkIdType length, int srcProcessId)
int Gather(const double *sendBuffer, double *recvBuffer, vtkIdType length, int destProcessId)
int AllGatherV(const float *sendBuffer, float *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
int Reduce(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
int Broadcast(vtkDataArray *data, int srcProcessId)
int Receive(int *data, vtkIdType maxlength, int remoteProcessId, int tag)
int AllGather(const long long *sendBuffer, long long *recvBuffer, vtkIdType length)
int Reduce(const float *sendBuffer, float *recvBuffer, vtkIdType length, int operation, int destProcessId)
int Broadcast(double *data, vtkIdType length, int srcProcessId)
int Reduce(const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, int operation, int destProcessId)
int Reduce(const long long *sendBuffer, long long *recvBuffer, vtkIdType length, int operation, int destProcessId)
int Broadcast(long long *data, vtkIdType length, int srcProcessId)
int AllGather(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length)
int Broadcast(signed char *data, vtkIdType length, int srcProcessId)
int Reduce(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, int operation, int destProcessId)
int Reduce(const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length, int operation, int destProcessId)
int Gather(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length, int destProcessId)
int Broadcast(unsigned long *data, vtkIdType length, int srcProcessId)
int Reduce(const float *sendBuffer, float *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
int Broadcast(unsigned short *data, vtkIdType length, int srcProcessId)
int Scatter(const char *sendBuffer, char *recvBuffer, vtkIdType length, int srcProcessId)
int AllGatherV(const char *sendBuffer, char *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
int Scatter(const long long *sendBuffer, long long *recvBuffer, vtkIdType length, int srcProcessId)
int GatherV(const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
int AllGatherV(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
int Reduce(const char *sendBuffer, char *recvBuffer, vtkIdType length, int operation, int destProcessId)
int Scatter(const double *sendBuffer, double *recvBuffer, vtkIdType length, int srcProcessId)
int ScatterV(const long *sendBuffer, long *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
Used to send/receive messages in a multiprocess environment.
general representation of visualization data
Definition: vtkDataObject.h:64
int Gather(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, int destProcessId)
int ScatterV(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
int AllGatherV(const short *sendBuffer, short *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
int AllReduce(const float *sendBuffer, float *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
int Broadcast(long *data, vtkIdType length, int srcProcessId)
int Gather(const int *sendBuffer, int *recvBuffer, vtkIdType length, int destProcessId)
int Scatter(const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, int srcProcessId)
int GatherV(const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
int GatherV(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
int AllReduce(const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
int GatherV(vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, int destProcessId)
int Gather(const long long *sendBuffer, long long *recvBuffer, vtkIdType length, int destProcessId)
int Scatter(const long *sendBuffer, long *recvBuffer, vtkIdType length, int srcProcessId)
int ScatterV(const int *sendBuffer, int *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
int Gather(const char *sendBuffer, char *recvBuffer, vtkIdType length, int destProcessId)
int AllGather(const char *sendBuffer, char *recvBuffer, vtkIdType length)
Multiprocessing communication superclass.