48 #ifndef __vtkMPIController_h
49 #define __vtkMPIController_h
79 virtual void Initialize(
int* vtkNotUsed(argc),
char*** vtkNotUsed(argv),
80 int initializedExternally);
90 virtual void Finalize(
int finalizedExternally);
107 static char* ErrorString(
int err);
132 (data ,length, remoteProcessId, tag, req); }
136 (data, length, remoteProcessId, tag, req); }
140 (data, length, remoteProcessId, tag, req); }
144 (data, length, remoteProcessId, tag, req); }
155 (data, length, remoteProcessId, tag, req); }
157 int remoteProcessId,
int tag,
160 (data, length, remoteProcessId, tag, req); }
164 (data, length, remoteProcessId, tag, req); }
168 (data, length, remoteProcessId, tag, req); }
169 #ifdef VTK_USE_64BIT_IDS
173 (data, length, remoteProcessId, tag, req); }
179 static const char* GetProcessorName();
197 void InitializeRMICommunicator();
204 void* arg,
int argLength,
int rmiTag,
bool propagate);
214 friend class vtkMPIOutputWindow;
219 static char ProcessorName[];
int NoBlockSend(const unsigned long *data, int length, int remoteProcessId, int tag, vtkMPICommunicator::Request &req)
virtual void Finalize()=0
Class for creating user defined MPI communicators.
virtual void TriggerRMIInternal(int remoteProcessId, void *arg, int argLength, int rmiTag, bool propagate)
virtual void MultipleMethodExecute()=0
static int UseSsendForRMI
static void SetUseSsendForRMI(int use_send)
int NoBlockSend(const int *data, int length, int remoteProcessId, int tag, vtkMPICommunicator::Request &req)
virtual void Initialize(int *vtkNotUsed(argc), char ***vtkNotUsed(argv))=0
int NoBlockReceive(unsigned long *data, int length, int remoteProcessId, int tag, vtkMPICommunicator::Request &req)
a simple class to control print indentation
A subgroup of processes from a communicator.
Process communication using MPI.
static vtkMPICommunicator * WorldRMICommunicator
int NoBlockReceive(float *data, int length, int remoteProcessId, int tag, vtkMPICommunicator::Request &req)
virtual void Initialize(int *argc, char ***argv)
virtual void CreateOutputWindow()=0
int NoBlockSend(const char *data, int length, int remoteProcessId, int tag, vtkMPICommunicator::Request &req)
int NoBlockReceive(char *data, int length, int remoteProcessId, int tag, vtkMPICommunicator::Request &req)
void PrintSelf(ostream &os, vtkIndent indent)
static int GetUseSsendForRMI()
int NoBlockReceive(int *data, int length, int remoteProcessId, int tag, vtkMPICommunicator::Request &req)
int NoBlockSend(const float *data, int length, int remoteProcessId, int tag, vtkMPICommunicator::Request &req)
virtual void SingleMethodExecute()=0
virtual vtkMultiProcessController * PartitionController(int localColor, int localKey)
virtual vtkMultiProcessController * CreateSubController(vtkProcessGroup *group)
Multiprocessing communication superclass.