VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Attributes | Friends | List of all members
vtkMPIController Class Reference

Process communication using MPI. More...

#include <vtkMPIController.h>

Inheritance diagram for vtkMPIController:
[legend]
Collaboration diagram for vtkMPIController:
[legend]

Public Types

typedef vtkMultiProcessController Superclass
 
- Public Types inherited from vtkMultiProcessController
enum  Errors { RMI_NO_ERROR, RMI_TAG_ERROR, RMI_ARG_ERROR }
 
enum  Consts { ANY_SOURCE = -1, INVALID_SOURCE = -2 }
 
enum  Tags { RMI_TAG = 1, RMI_ARG_TAG = 2, BREAK_RMI_TAG = 3, XML_WRITER_DATA_INFO = 4 }
 
typedef vtkObject Superclass
 
- Public Types inherited from vtkObject
typedef vtkObjectBase Superclass
 

Public Member Functions

virtual int IsA (const char *type)
 
vtkMPIControllerNewInstance () const
 
void PrintSelf (ostream &os, vtkIndent indent)
 
virtual void Initialize (int *vtkNotUsed(argc), char ***vtkNotUsed(argv), int initializedExternally)
 
virtual void Initialize ()
 
virtual void Finalize ()
 
virtual void Finalize (int finalizedExternally)
 
virtual void SingleMethodExecute ()
 
virtual void MultipleMethodExecute ()
 
virtual void CreateOutputWindow ()
 
void SetCommunicator (vtkMPICommunicator *comm)
 
virtual vtkMPIControllerCreateSubController (vtkProcessGroup *group)
 
virtual vtkMPIControllerPartitionController (int localColor, int localKey)
 
bool TestAll (const int count, vtkMPICommunicator::Request requests[])
 
bool TestAny (const int count, vtkMPICommunicator::Request requests[], int &idx)
 
virtual void Initialize (int *argc, char ***argv)
 
int NoBlockSend (const int *data, int length, int remoteProcessId, int tag, vtkMPICommunicator::Request &req)
 
int NoBlockSend (const unsigned long *data, int length, int remoteProcessId, int tag, vtkMPICommunicator::Request &req)
 
int NoBlockSend (const char *data, int length, int remoteProcessId, int tag, vtkMPICommunicator::Request &req)
 
int NoBlockSend (const unsigned char *data, int length, int remoteProcessId, int tag, vtkMPICommunicator::Request &req)
 
int NoBlockSend (const float *data, int length, int remoteProcessId, int tag, vtkMPICommunicator::Request &req)
 
int NoBlockSend (const double *data, int length, int remoteProcessId, int tag, vtkMPICommunicator::Request &req)
 
int NoBlockReceive (int *data, int length, int remoteProcessId, int tag, vtkMPICommunicator::Request &req)
 
int NoBlockReceive (unsigned long *data, int length, int remoteProcessId, int tag, vtkMPICommunicator::Request &req)
 
int NoBlockReceive (char *data, int length, int remoteProcessId, int tag, vtkMPICommunicator::Request &req)
 
int NoBlockReceive (unsigned char *data, int length, int remoteProcessId, int tag, vtkMPICommunicator::Request &req)
 
int NoBlockReceive (float *data, int length, int remoteProcessId, int tag, vtkMPICommunicator::Request &req)
 
int NoBlockReceive (double *data, int length, int remoteProcessId, int tag, vtkMPICommunicator::Request &req)
 
int Iprobe (int source, int tag, int *flag, int *actualSource)
 
int Iprobe (int source, int tag, int *flag, int *actualSource, int *type, int *size)
 
int Iprobe (int source, int tag, int *flag, int *actualSource, unsigned long *type, int *size)
 
int Iprobe (int source, int tag, int *flag, int *actualSource, const char *type, int *size)
 
int Iprobe (int source, int tag, int *flag, int *actualSource, float *type, int *size)
 
int Iprobe (int source, int tag, int *flag, int *actualSource, double *type, int *size)
 
int WaitAll (const int count, vtkMPICommunicator::Request requests[])
 
int WaitAny (const int count, vtkMPICommunicator::Request requests[], int &idx)
 
int WaitSome (const int count, vtkMPICommunicator::Request requests[], vtkIntArray *completed)
 
- Public Member Functions inherited from vtkMultiProcessController
vtkMultiProcessControllerNewInstance () const
 
virtual void Initialize (int *vtkNotUsed(argc), char ***vtkNotUsed(argv))=0
 
void SetSingleMethod (vtkProcessFunctionType, void *data)
 
int GetLocalProcessId ()
 
virtual unsigned long AddRMI (vtkRMIFunctionType, void *localArg, int tag)
 
virtual int RemoveFirstRMI (int tag)
 
virtual int RemoveRMI (unsigned long id)
 
virtual unsigned long AddRMICallback (vtkRMIFunctionType, void *localArg, int tag)
 
virtual void RemoveAllRMICallbacks (int tag)
 
virtual bool RemoveRMICallback (unsigned long id)
 
void TriggerRMI (int remoteProcessId, void *arg, int argLength, int tag)
 
void TriggerBreakRMIs ()
 
void Barrier ()
 
vtkIdType GetCount ()
 
int GatherV (vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
 
int GatherV (vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, vtkIdTypeArray *recvLengths, vtkIdTypeArray *offsets, int destProcessId)
 
void SetNumberOfProcesses (int num)
 
int GetNumberOfProcesses ()
 
void SetSingleProcessObject (vtkProcess *p)
 
void SetMultipleMethod (int index, vtkProcessFunctionType, void *data)
 
virtual void RemoveRMI (vtkRMIFunctionType f, void *arg, int tag)
 
void TriggerRMI (int remoteProcessId, const char *arg, int tag)
 
void TriggerRMI (int remoteProcessId, int tag)
 
void TriggerRMIOnAllChildren (void *arg, int argLength, int tag)
 
void TriggerRMIOnAllChildren (const char *arg, int tag)
 
void TriggerRMIOnAllChildren (int tag)
 
void BroadcastTriggerRMIOnAllChildren (void *arg, int argLength, int tag)
 
int ProcessRMIs (int reportErrors, int dont_loop=0)
 
int ProcessRMIs ()
 
int BroadcastProcessRMIs (int reportErrors, int dont_loop=0)
 
virtual void SetBreakFlag (int)
 
virtual int GetBreakFlag ()
 
virtual void SetBroadcastTriggerRMI (bool)
 
virtual bool GetBroadcastTriggerRMI ()
 
virtual void BroadcastTriggerRMIOn ()
 
virtual void BroadcastTriggerRMIOff ()
 
virtual vtkCommunicatorGetCommunicator ()
 
int Send (const int *data, vtkIdType length, int remoteProcessId, int tag)
 
int Send (const short *data, vtkIdType length, int remoteProcessId, int tag)
 
int Send (const unsigned short *data, vtkIdType length, int remoteProcessId, int tag)
 
int Send (const unsigned int *data, vtkIdType length, int remoteProcessId, int tag)
 
int Send (const unsigned long *data, vtkIdType length, int remoteProcessId, int tag)
 
int Send (const long *data, vtkIdType length, int remoteProcessId, int tag)
 
int Send (const signed char *data, vtkIdType length, int remoteProcessId, int tag)
 
int Send (const char *data, vtkIdType length, int remoteProcessId, int tag)
 
int Send (const unsigned char *data, vtkIdType length, int remoteProcessId, int tag)
 
int Send (const float *data, vtkIdType length, int remoteProcessId, int tag)
 
int Send (const double *data, vtkIdType length, int remoteProcessId, int tag)
 
int Send (const long long *data, vtkIdType length, int remoteProcessId, int tag)
 
int Send (const unsigned long long *data, vtkIdType length, int remoteProcessId, int tag)
 
int Send (vtkDataObject *data, int remoteId, int tag)
 
int Send (vtkDataArray *data, int remoteId, int tag)
 
int Send (const vtkMultiProcessStream &stream, int remoteId, int tag)
 
int Receive (int *data, vtkIdType maxlength, int remoteProcessId, int tag)
 
int Receive (unsigned int *data, vtkIdType maxlength, int remoteProcessId, int tag)
 
int Receive (short *data, vtkIdType maxlength, int remoteProcessId, int tag)
 
int Receive (unsigned short *data, vtkIdType maxlength, int remoteProcessId, int tag)
 
int Receive (long *data, vtkIdType maxlength, int remoteProcessId, int tag)
 
int Receive (unsigned long *data, vtkIdType maxlength, int remoteProcessId, int tag)
 
int Receive (char *data, vtkIdType maxlength, int remoteProcessId, int tag)
 
int Receive (unsigned char *data, vtkIdType maxlength, int remoteProcessId, int tag)
 
int Receive (signed char *data, vtkIdType maxlength, int remoteProcessId, int tag)
 
int Receive (float *data, vtkIdType maxlength, int remoteProcessId, int tag)
 
int Receive (double *data, vtkIdType maxlength, int remoteProcessId, int tag)
 
int Receive (long long *data, vtkIdType maxLength, int remoteProcessId, int tag)
 
int Receive (unsigned long long *data, vtkIdType maxLength, int remoteProcessId, int tag)
 
int Receive (vtkDataObject *data, int remoteId, int tag)
 
int Receive (vtkDataArray *data, int remoteId, int tag)
 
int Receive (vtkMultiProcessStream &stream, int remoteId, int tag)
 
vtkDataObjectReceiveDataObject (int remoteId, int tag)
 
int Broadcast (int *data, vtkIdType length, int srcProcessId)
 
int Broadcast (unsigned int *data, vtkIdType length, int srcProcessId)
 
int Broadcast (short *data, vtkIdType length, int srcProcessId)
 
int Broadcast (unsigned short *data, vtkIdType length, int srcProcessId)
 
int Broadcast (long *data, vtkIdType length, int srcProcessId)
 
int Broadcast (unsigned long *data, vtkIdType length, int srcProcessId)
 
int Broadcast (unsigned char *data, vtkIdType length, int srcProcessId)
 
int Broadcast (char *data, vtkIdType length, int srcProcessId)
 
int Broadcast (signed char *data, vtkIdType length, int srcProcessId)
 
int Broadcast (float *data, vtkIdType length, int srcProcessId)
 
int Broadcast (double *data, vtkIdType length, int srcProcessId)
 
int Broadcast (long long *data, vtkIdType length, int srcProcessId)
 
int Broadcast (unsigned long long *data, vtkIdType length, int srcProcessId)
 
int Broadcast (vtkDataObject *data, int srcProcessId)
 
int Broadcast (vtkDataArray *data, int srcProcessId)
 
int Broadcast (vtkMultiProcessStream &stream, int srcProcessId)
 
int Gather (const int *sendBuffer, int *recvBuffer, vtkIdType length, int destProcessId)
 
int Gather (const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, int destProcessId)
 
int Gather (const short *sendBuffer, short *recvBuffer, vtkIdType length, int destProcessId)
 
int Gather (const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, int destProcessId)
 
int Gather (const long *sendBuffer, long *recvBuffer, vtkIdType length, int destProcessId)
 
int Gather (const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length, int destProcessId)
 
int Gather (const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length, int destProcessId)
 
int Gather (const char *sendBuffer, char *recvBuffer, vtkIdType length, int destProcessId)
 
int Gather (const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, int destProcessId)
 
int Gather (const float *sendBuffer, float *recvBuffer, vtkIdType length, int destProcessId)
 
int Gather (const double *sendBuffer, double *recvBuffer, vtkIdType length, int destProcessId)
 
int Gather (const long long *sendBuffer, long long *recvBuffer, vtkIdType length, int destProcessId)
 
int Gather (const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, int destProcessId)
 
int Gather (vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, int destProcessId)
 
int GatherV (const int *sendBuffer, int *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
 
int GatherV (const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
 
int GatherV (const short *sendBuffer, short *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
 
int GatherV (const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
 
int GatherV (const long *sendBuffer, long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
 
int GatherV (const unsigned long *sendBuffer, unsigned long *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 GatherV (const char *sendBuffer, char *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
 
int GatherV (const signed char *sendBuffer, signed char *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
 
int GatherV (const float *sendBuffer, float *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
 
int GatherV (const double *sendBuffer, double *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
 
int GatherV (const long long *sendBuffer, long long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
 
int GatherV (const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int destProcessId)
 
int GatherV (vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, int destProcessId)
 
int GatherV (vtkDataObject *sendData, vtkSmartPointer< vtkDataObject > *recvData, int destProcessId)
 
int Scatter (const int *sendBuffer, int *recvBuffer, vtkIdType length, int srcProcessId)
 
int Scatter (const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, int srcProcessId)
 
int Scatter (const short *sendBuffer, short *recvBuffer, vtkIdType length, int srcProcessId)
 
int Scatter (const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, int srcProcessId)
 
int Scatter (const long *sendBuffer, long *recvBuffer, vtkIdType length, int srcProcessId)
 
int Scatter (const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length, int srcProcessId)
 
int Scatter (const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length, int srcProcessId)
 
int Scatter (const char *sendBuffer, char *recvBuffer, vtkIdType length, int srcProcessId)
 
int Scatter (const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, int srcProcessId)
 
int Scatter (const float *sendBuffer, float *recvBuffer, vtkIdType length, int srcProcessId)
 
int Scatter (const double *sendBuffer, double *recvBuffer, vtkIdType length, int srcProcessId)
 
int Scatter (const long long *sendBuffer, long long *recvBuffer, vtkIdType length, int srcProcessId)
 
int Scatter (const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, int srcProcessId)
 
int Scatter (vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, int srcProcessId)
 
int ScatterV (const int *sendBuffer, int *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
 
int ScatterV (const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
 
int ScatterV (const short *sendBuffer, short *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
 
int ScatterV (const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
 
int ScatterV (const long *sendBuffer, long *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
 
int ScatterV (const unsigned long *sendBuffer, unsigned long *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 ScatterV (const char *sendBuffer, char *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
 
int ScatterV (const signed char *sendBuffer, signed char *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
 
int ScatterV (const float *sendBuffer, float *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
 
int ScatterV (const double *sendBuffer, double *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
 
int ScatterV (const long long *sendBuffer, long long *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
 
int ScatterV (const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int srcProcessId)
 
int AllGather (const int *sendBuffer, int *recvBuffer, vtkIdType length)
 
int AllGather (const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length)
 
int AllGather (const short *sendBuffer, short *recvBuffer, vtkIdType length)
 
int AllGather (const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length)
 
int AllGather (const long *sendBuffer, long *recvBuffer, vtkIdType length)
 
int AllGather (const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length)
 
int AllGather (const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length)
 
int AllGather (const char *sendBuffer, char *recvBuffer, vtkIdType length)
 
int AllGather (const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length)
 
int AllGather (const float *sendBuffer, float *recvBuffer, vtkIdType length)
 
int AllGather (const double *sendBuffer, double *recvBuffer, vtkIdType length)
 
int AllGather (const long long *sendBuffer, long long *recvBuffer, vtkIdType length)
 
int AllGather (const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length)
 
int AllGather (vtkDataArray *sendBuffer, vtkDataArray *recvBuffer)
 
int AllGatherV (const int *sendBuffer, int *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
 
int AllGatherV (const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
 
int AllGatherV (const short *sendBuffer, short *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
 
int AllGatherV (const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
 
int AllGatherV (const long *sendBuffer, long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
 
int AllGatherV (const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
 
int AllGatherV (const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
 
int AllGatherV (const char *sendBuffer, char *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
 
int AllGatherV (const signed char *sendBuffer, signed char *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
 
int AllGatherV (const float *sendBuffer, float *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
 
int AllGatherV (const double *sendBuffer, double *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
 
int AllGatherV (const long long *sendBuffer, long long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
 
int AllGatherV (const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets)
 
int AllGatherV (vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, vtkIdType *recvLengths, vtkIdType *offsets)
 
int AllGatherV (vtkDataArray *sendBuffer, vtkDataArray *recvBuffer)
 
int Reduce (const int *sendBuffer, int *recvBuffer, vtkIdType length, int operation, int destProcessId)
 
int Reduce (const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, int operation, int destProcessId)
 
int Reduce (const short *sendBuffer, short *recvBuffer, vtkIdType length, int operation, int destProcessId)
 
int Reduce (const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, int operation, int destProcessId)
 
int Reduce (const long *sendBuffer, long *recvBuffer, vtkIdType length, int operation, int destProcessId)
 
int Reduce (const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length, int operation, int destProcessId)
 
int Reduce (const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length, int operation, int destProcessId)
 
int Reduce (const char *sendBuffer, char *recvBuffer, vtkIdType length, int operation, int destProcessId)
 
int Reduce (const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, int operation, int destProcessId)
 
int Reduce (const float *sendBuffer, float *recvBuffer, vtkIdType length, int operation, int destProcessId)
 
int Reduce (const double *sendBuffer, double *recvBuffer, vtkIdType length, int operation, int destProcessId)
 
int Reduce (const long long *sendBuffer, long long *recvBuffer, vtkIdType length, int operation, int destProcessId)
 
int Reduce (const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, int operation, int destProcessId)
 
int Reduce (vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, int operation, int destProcessId)
 
int Reduce (const int *sendBuffer, int *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
 
int Reduce (const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
 
int Reduce (const short *sendBuffer, short *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
 
int Reduce (const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
 
int Reduce (const long *sendBuffer, long *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
 
int Reduce (const unsigned long *sendBuffer, unsigned 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 Reduce (const char *sendBuffer, char *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
 
int Reduce (const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
 
int Reduce (const float *sendBuffer, float *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
 
int Reduce (const double *sendBuffer, double *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
 
int Reduce (const long long *sendBuffer, long long *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
 
int Reduce (const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation, int destProcessId)
 
int Reduce (vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, vtkCommunicator::Operation *operation, int destProcessId)
 
int AllReduce (const int *sendBuffer, int *recvBuffer, vtkIdType length, int operation)
 
int AllReduce (const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, int operation)
 
int AllReduce (const short *sendBuffer, short *recvBuffer, vtkIdType length, int operation)
 
int AllReduce (const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, int operation)
 
int AllReduce (const long *sendBuffer, long *recvBuffer, vtkIdType length, int operation)
 
int AllReduce (const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length, int operation)
 
int AllReduce (const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length, int operation)
 
int AllReduce (const char *sendBuffer, char *recvBuffer, vtkIdType length, int operation)
 
int AllReduce (const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, int operation)
 
int AllReduce (const float *sendBuffer, float *recvBuffer, vtkIdType length, int operation)
 
int AllReduce (const double *sendBuffer, double *recvBuffer, vtkIdType length, int operation)
 
int AllReduce (const long long *sendBuffer, long long *recvBuffer, vtkIdType length, int operation)
 
int AllReduce (const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, int operation)
 
int AllReduce (vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, int operation)
 
int AllReduce (const int *sendBuffer, int *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
 
int AllReduce (const unsigned int *sendBuffer, unsigned int *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
 
int AllReduce (const short *sendBuffer, short *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
 
int AllReduce (const unsigned short *sendBuffer, unsigned short *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
 
int AllReduce (const long *sendBuffer, long *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
 
int AllReduce (const unsigned long *sendBuffer, unsigned long *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
 
int AllReduce (const unsigned char *sendBuffer, unsigned char *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
 
int AllReduce (const char *sendBuffer, char *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
 
int AllReduce (const signed char *sendBuffer, signed char *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
 
int AllReduce (const float *sendBuffer, float *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
 
int AllReduce (const double *sendBuffer, double *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
 
int AllReduce (const long long *sendBuffer, long long *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
 
int AllReduce (const unsigned long long *sendBuffer, unsigned long long *recvBuffer, vtkIdType length, vtkCommunicator::Operation *operation)
 
int AllReduce (vtkDataArray *sendBuffer, vtkDataArray *recvBuffer, vtkCommunicator::Operation *operation)
 
- Public Member Functions inherited from vtkObject
vtkObjectNewInstance () const
 
virtual void DebugOn ()
 
virtual void DebugOff ()
 
bool GetDebug ()
 
void SetDebug (bool debugFlag)
 
virtual void Modified ()
 
virtual unsigned long GetMTime ()
 
unsigned long AddObserver (unsigned long event, vtkCommand *, float priority=0.0f)
 
unsigned long AddObserver (const char *event, vtkCommand *, float priority=0.0f)
 
vtkCommandGetCommand (unsigned long tag)
 
void RemoveObserver (vtkCommand *)
 
void RemoveObservers (unsigned long event, vtkCommand *)
 
void RemoveObservers (const char *event, vtkCommand *)
 
int HasObserver (unsigned long event, vtkCommand *)
 
int HasObserver (const char *event, vtkCommand *)
 
void RemoveObserver (unsigned long tag)
 
void RemoveObservers (unsigned long event)
 
void RemoveObservers (const char *event)
 
void RemoveAllObservers ()
 
int HasObserver (unsigned long event)
 
int HasObserver (const char *event)
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f)
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
 
int InvokeEvent (unsigned long event, void *callData)
 
int InvokeEvent (const char *event, void *callData)
 
int InvokeEvent (unsigned long event)
 
int InvokeEvent (const char *event)
 
- Public Member Functions inherited from vtkObjectBase
const char * GetClassName () const
 
virtual void Delete ()
 
virtual void FastDelete ()
 
void Print (ostream &os)
 
virtual void Register (vtkObjectBase *o)
 
virtual void UnRegister (vtkObjectBase *o)
 
void SetReferenceCount (int)
 
void PrintRevisions (ostream &)
 
virtual void PrintHeader (ostream &os, vtkIndent indent)
 
virtual void PrintTrailer (ostream &os, vtkIndent indent)
 
int GetReferenceCount ()
 

Static Public Member Functions

static vtkMPIControllerNew ()
 
static int IsTypeOf (const char *type)
 
static vtkMPIControllerSafeDownCast (vtkObjectBase *o)
 
static char * ErrorString (int err)
 
- Static Public Member Functions inherited from vtkMultiProcessController
static int IsTypeOf (const char *type)
 
static vtkMultiProcessControllerSafeDownCast (vtkObjectBase *o)
 
static vtkMultiProcessControllerGetGlobalController ()
 
static void SetGlobalController (vtkMultiProcessController *controller)
 
static int GetBreakRMITag ()
 
static int GetRMITag ()
 
static int GetRMIArgTag ()
 
- Static Public Member Functions inherited from vtkObject
static int IsTypeOf (const char *type)
 
static vtkObjectSafeDownCast (vtkObjectBase *o)
 
static vtkObjectNew ()
 
static void BreakOnError ()
 
static void SetGlobalWarningDisplay (int val)
 
static void GlobalWarningDisplayOn ()
 
static void GlobalWarningDisplayOff ()
 
static int GetGlobalWarningDisplay ()
 
- Static Public Member Functions inherited from vtkObjectBase
static int IsTypeOf (const char *name)
 
static vtkObjectBaseNew ()
 

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 
void InitializeCommunicator (vtkMPICommunicator *comm)
 
void InitializeRMICommunicator ()
 
virtual void TriggerRMIInternal (int remoteProcessId, void *arg, int argLength, int rmiTag, bool propagate)
 
- Protected Member Functions inherited from vtkMultiProcessController
 vtkMultiProcessController ()
 
 ~vtkMultiProcessController ()
 
void GetMultipleMethod (int index, vtkProcessFunctionType &func, void *&data)
 
void ProcessRMI (int remoteProcessId, void *arg, int argLength, int rmiTag)
 
virtual vtkMultiProcessControllerGetLocalController ()
 
- Protected Member Functions inherited from vtkObject
 vtkObject ()
 
virtual ~vtkObject ()
 
virtual void RegisterInternal (vtkObjectBase *, int check)
 
virtual void UnRegisterInternal (vtkObjectBase *, int check)
 
void InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=NULL)
 
void InternalReleaseFocus ()
 
- Protected Member Functions inherited from vtkObjectBase
 vtkObjectBase ()
 
virtual ~vtkObjectBase ()
 
virtual void CollectRevisions (ostream &)
 
virtual void ReportReferences (vtkGarbageCollector *)
 
 vtkObjectBase (const vtkObjectBase &)
 
void operator= (const vtkObjectBase &)
 

Static Protected Attributes

static vtkMPICommunicatorWorldRMICommunicator
 
static int Initialized
 
static char ProcessorName []
 

Friends

class vtkMPIOutputWindow
 
static const char * GetProcessorName ()
 
bool TestSome (const int count, vtkMPICommunicator::Request requests[], vtkIntArray *completed)
 
static void SetUseSsendForRMI (int use_send)
 
static int GetUseSsendForRMI ()
 
 vtkMPIController ()
 
 ~vtkMPIController ()
 
static int UseSsendForRMI
 

Additional Inherited Members

- Protected Attributes inherited from vtkMultiProcessController
vtkProcessFunctionType SingleMethod
 
void * SingleData
 
int BreakFlag
 
int ForceDeepCopy
 
bool BroadcastTriggerRMI
 
vtkOutputWindowOutputWindow
 
vtkCommunicatorCommunicator
 
vtkCommunicatorRMICommunicator
 
- Protected Attributes inherited from vtkObject
bool Debug
 
vtkTimeStamp MTime
 
vtkSubjectHelper * SubjectHelper
 
- Protected Attributes inherited from vtkObjectBase
vtkAtomicInt32 ReferenceCount
 
vtkWeakPointerBase ** WeakPointers
 

Detailed Description

Process communication using MPI.

vtkMPIController is a concrete class which implements the abstract multi-process control methods defined in vtkMultiProcessController using MPI (Message Passing Interface) cf. Using MPI / Portable Parallel Programming with the Message-Passing Interface, Gropp et al, MIT Press. It also provide functionality specific to MPI and not present in vtkMultiProcessController. Before any MPI communication can occur Initialize() must be called by all processes. It is required to be called once, controllers created after this need not call Initialize(). At the end of the program Finalize() must be called by all processes.

The use of user-defined communicators are supported with the CreateSubController method. Note that a duplicate of the user defined communicator is used for internal communications (RMIs). This communicator has the same properties as the user one except that it has a new context which prevents the two communicators from interfering with each other.

See also
vtkOutputPort vtkInputPort vtkMultiProcessController vtkMPICommunicator vtkProcessGroup
Examples:
vtkMPIController (Examples)
Tests:
vtkMPIController (Tests)

Definition at line 60 of file vtkMPIController.h.

Member Typedef Documentation

Definition at line 66 of file vtkMPIController.h.

Constructor & Destructor Documentation

vtkMPIController::vtkMPIController ( )
protected

When set to 1, TriggerRMI uses Ssend() instead of Send() calls. Off (0) by default.

vtkMPIController::~vtkMPIController ( )
protected

When set to 1, TriggerRMI uses Ssend() instead of Send() calls. Off (0) by default.

Member Function Documentation

static vtkMPIController* vtkMPIController::New ( )
static
static int vtkMPIController::IsTypeOf ( const char *  type)
static
virtual int vtkMPIController::IsA ( const char *  name)
virtual

Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkMultiProcessController.

static vtkMPIController* vtkMPIController::SafeDownCast ( vtkObjectBase o)
static
virtual vtkObjectBase* vtkMPIController::NewInstanceInternal ( ) const
protectedvirtual

Reimplemented from vtkMultiProcessController.

vtkMPIController* vtkMPIController::NewInstance ( ) const
void vtkMPIController::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
virtual

Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtkMultiProcessController.

virtual void vtkMPIController::Initialize ( int argc,
char ***  argv 
)
inlinevirtual

This method is for setting up the processes. It needs to be called only once during program execution. Calling it more than once will have no effect. Controllers created after this call will be initialized automatically (i.e. they will have the proper LocalProcessId and NumberOfProcesses). The addresses of argc and argv should be passed to this method otherwise command line arguments will not be correct (because usually MPI implementations add their own arguments during startup).

Definition at line 78 of file vtkMPIController.h.

virtual void vtkMPIController::Initialize ( int vtkNotUsedargc,
char ***  vtkNotUsedargv,
int  initializedExternally 
)
virtual

This method is for setting up the processes. If a subclass needs to initialize process communication (i.e. MPI) it would over ride this method. Provided for initialization outside vtk.

Implements vtkMultiProcessController.

virtual void vtkMPIController::Initialize ( )
virtual

Same as Initialize(0, 0, 1). Mainly for calling from wrapped languages.

virtual void vtkMPIController::Finalize ( )
inlinevirtual

This method is for cleaning up and has to be called before the end of the program if MPI was initialized with Initialize()

Implements vtkMultiProcessController.

Definition at line 91 of file vtkMPIController.h.

virtual void vtkMPIController::Finalize ( int  finalizedExternally)
virtual

This method is for cleaning up. If a subclass needs to clean up process communication (i.e. MPI) it would over ride this method. Provided for finalization outside vtk.

Implements vtkMultiProcessController.

virtual void vtkMPIController::SingleMethodExecute ( )
virtual

Execute the SingleMethod (as define by SetSingleMethod) using this->NumberOfProcesses processes.

Implements vtkMultiProcessController.

virtual void vtkMPIController::MultipleMethodExecute ( )
virtual

Execute the MultipleMethods (as define by calling SetMultipleMethod for each of the required this->NumberOfProcesses methods) using this->NumberOfProcesses processes.

Implements vtkMultiProcessController.

virtual void vtkMPIController::CreateOutputWindow ( )
virtual

This method can be used to tell the controller to create a special output window in which all messages are preceded by the process id.

Implements vtkMultiProcessController.

static char* vtkMPIController::ErrorString ( int  err)
static

Given an MPI error code, return a string which contains an error message. This string has to be freed by the user.

void vtkMPIController::SetCommunicator ( vtkMPICommunicator comm)

MPIController uses this communicator in all sends and receives. By default, MPI_COMM_WORLD is used. THIS SHOULD ONLY BE CALLED ON THE PROCESSES INCLUDED IN THE COMMUNICATOR. FOR EXAMPLE, IF THE COMMUNICATOR CONTAINS PROCESSES 0 AND 1, INVOKING THIS METHOD ON ANY OTHER PROCESS WILL CAUSE AN MPI ERROR AND POSSIBLY LEAD TO A CRASH.

virtual vtkMPIController* vtkMPIController::CreateSubController ( vtkProcessGroup group)
virtual

Creates a new controller with the processes specified by the given group. The new controller will already be initialized for you. You are responsible for deleting the controller once you are done. It is invalid to pass this method a group with a different communicator than is used by this controller. This operation is collective across all processes defined in the group. It is undefined what will happen if the group is not the same on all processes. This method must be called by all processes in the controller regardless of whether they are in the group. NULL is returned on all process not in the group.

Reimplemented from vtkMultiProcessController.

virtual vtkMPIController* vtkMPIController::PartitionController ( int  localColor,
int  localKey 
)
virtual

Partitions this controller based on a coloring. That is, each process passes in a color. All processes with the same color are grouped into the same partition. The processes are ordered by their self-assigned key. Lower keys have lower process ids. Ties are broken by the current process ids. (For example, if all the keys are 0, then the resulting processes will be ordered in the same way.) This method returns a new controller to each process that represents the local partition. This is basically the same operation as MPI_Comm_split.

Reimplemented from vtkMultiProcessController.

int vtkMPIController::NoBlockSend ( const int data,
int  length,
int  remoteProcessId,
int  tag,
vtkMPICommunicator::Request req 
)
inline

This method sends data to another process (non-blocking). Tag eliminates ambiguity when multiple sends or receives exist in the same process. The last argument, vtkMPICommunicator::Request& req can later be used (with req.Test() ) to test the success of the message. Return values are 1 for success and 0 otherwise. Note: These methods delegate to the communicator

Definition at line 133 of file vtkMPIController.h.

int vtkMPIController::NoBlockSend ( const unsigned long *  data,
int  length,
int  remoteProcessId,
int  tag,
vtkMPICommunicator::Request req 
)
inline

This method sends data to another process (non-blocking). Tag eliminates ambiguity when multiple sends or receives exist in the same process. The last argument, vtkMPICommunicator::Request& req can later be used (with req.Test() ) to test the success of the message. Return values are 1 for success and 0 otherwise. Note: These methods delegate to the communicator

Definition at line 137 of file vtkMPIController.h.

int vtkMPIController::NoBlockSend ( const char *  data,
int  length,
int  remoteProcessId,
int  tag,
vtkMPICommunicator::Request req 
)
inline

This method sends data to another process (non-blocking). Tag eliminates ambiguity when multiple sends or receives exist in the same process. The last argument, vtkMPICommunicator::Request& req can later be used (with req.Test() ) to test the success of the message. Return values are 1 for success and 0 otherwise. Note: These methods delegate to the communicator

Definition at line 141 of file vtkMPIController.h.

int vtkMPIController::NoBlockSend ( const unsigned char *  data,
int  length,
int  remoteProcessId,
int  tag,
vtkMPICommunicator::Request req 
)
inline

This method sends data to another process (non-blocking). Tag eliminates ambiguity when multiple sends or receives exist in the same process. The last argument, vtkMPICommunicator::Request& req can later be used (with req.Test() ) to test the success of the message. Return values are 1 for success and 0 otherwise. Note: These methods delegate to the communicator

Definition at line 145 of file vtkMPIController.h.

int vtkMPIController::NoBlockSend ( const float data,
int  length,
int  remoteProcessId,
int  tag,
vtkMPICommunicator::Request req 
)
inline

This method sends data to another process (non-blocking). Tag eliminates ambiguity when multiple sends or receives exist in the same process. The last argument, vtkMPICommunicator::Request& req can later be used (with req.Test() ) to test the success of the message. Return values are 1 for success and 0 otherwise. Note: These methods delegate to the communicator

Definition at line 149 of file vtkMPIController.h.

int vtkMPIController::NoBlockSend ( const double data,
int  length,
int  remoteProcessId,
int  tag,
vtkMPICommunicator::Request req 
)
inline

This method sends data to another process (non-blocking). Tag eliminates ambiguity when multiple sends or receives exist in the same process. The last argument, vtkMPICommunicator::Request& req can later be used (with req.Test() ) to test the success of the message. Return values are 1 for success and 0 otherwise. Note: These methods delegate to the communicator

Definition at line 153 of file vtkMPIController.h.

int vtkMPIController::NoBlockReceive ( int data,
int  length,
int  remoteProcessId,
int  tag,
vtkMPICommunicator::Request req 
)
inline

This method receives data from a corresponding send (non-blocking). The last argument, vtkMPICommunicator::Request& req can later be used (with req.Test() ) to test the success of the message. Return values are 1 for success and 0 otherwise. Note: These methods delegate to the communicator

Definition at line 171 of file vtkMPIController.h.

int vtkMPIController::NoBlockReceive ( unsigned long *  data,
int  length,
int  remoteProcessId,
int  tag,
vtkMPICommunicator::Request req 
)
inline

This method receives data from a corresponding send (non-blocking). The last argument, vtkMPICommunicator::Request& req can later be used (with req.Test() ) to test the success of the message. Return values are 1 for success and 0 otherwise. Note: These methods delegate to the communicator

Definition at line 175 of file vtkMPIController.h.

int vtkMPIController::NoBlockReceive ( char *  data,
int  length,
int  remoteProcessId,
int  tag,
vtkMPICommunicator::Request req 
)
inline

This method receives data from a corresponding send (non-blocking). The last argument, vtkMPICommunicator::Request& req can later be used (with req.Test() ) to test the success of the message. Return values are 1 for success and 0 otherwise. Note: These methods delegate to the communicator

Definition at line 180 of file vtkMPIController.h.

int vtkMPIController::NoBlockReceive ( unsigned char *  data,
int  length,
int  remoteProcessId,
int  tag,
vtkMPICommunicator::Request req 
)
inline

This method receives data from a corresponding send (non-blocking). The last argument, vtkMPICommunicator::Request& req can later be used (with req.Test() ) to test the success of the message. Return values are 1 for success and 0 otherwise. Note: These methods delegate to the communicator

Definition at line 184 of file vtkMPIController.h.

int vtkMPIController::NoBlockReceive ( float data,
int  length,
int  remoteProcessId,
int  tag,
vtkMPICommunicator::Request req 
)
inline

This method receives data from a corresponding send (non-blocking). The last argument, vtkMPICommunicator::Request& req can later be used (with req.Test() ) to test the success of the message. Return values are 1 for success and 0 otherwise. Note: These methods delegate to the communicator

Definition at line 188 of file vtkMPIController.h.

int vtkMPIController::NoBlockReceive ( double data,
int  length,
int  remoteProcessId,
int  tag,
vtkMPICommunicator::Request req 
)
inline

This method receives data from a corresponding send (non-blocking). The last argument, vtkMPICommunicator::Request& req can later be used (with req.Test() ) to test the success of the message. Return values are 1 for success and 0 otherwise. Note: These methods delegate to the communicator

Definition at line 192 of file vtkMPIController.h.

int vtkMPIController::Iprobe ( int  source,
int  tag,
int flag,
int actualSource 
)
inline

Nonblocking test for a message. Inputs are: source – the source rank or ANY_SOURCE; tag – the tag value. Outputs are: flag – True if a message matches; actualSource – the rank sending the message (useful if ANY_SOURCE is used) if flag is True and actualSource isn't NULL; size – the length of the message in bytes if flag is true (only set if size isn't NULL). The return value is 1 for success and 0 otherwise. Note: These methods delegate to the communicator

Definition at line 212 of file vtkMPIController.h.

int vtkMPIController::Iprobe ( int  source,
int  tag,
int flag,
int actualSource,
int type,
int size 
)
inline

Nonblocking test for a message. Inputs are: source – the source rank or ANY_SOURCE; tag – the tag value. Outputs are: flag – True if a message matches; actualSource – the rank sending the message (useful if ANY_SOURCE is used) if flag is True and actualSource isn't NULL; size – the length of the message in bytes if flag is true (only set if size isn't NULL). The return value is 1 for success and 0 otherwise. Note: These methods delegate to the communicator

Definition at line 215 of file vtkMPIController.h.

int vtkMPIController::Iprobe ( int  source,
int  tag,
int flag,
int actualSource,
unsigned long *  type,
int size 
)
inline

Nonblocking test for a message. Inputs are: source – the source rank or ANY_SOURCE; tag – the tag value. Outputs are: flag – True if a message matches; actualSource – the rank sending the message (useful if ANY_SOURCE is used) if flag is True and actualSource isn't NULL; size – the length of the message in bytes if flag is true (only set if size isn't NULL). The return value is 1 for success and 0 otherwise. Note: These methods delegate to the communicator

Definition at line 219 of file vtkMPIController.h.

int vtkMPIController::Iprobe ( int  source,
int  tag,
int flag,
int actualSource,
const char *  type,
int size 
)
inline

Nonblocking test for a message. Inputs are: source – the source rank or ANY_SOURCE; tag – the tag value. Outputs are: flag – True if a message matches; actualSource – the rank sending the message (useful if ANY_SOURCE is used) if flag is True and actualSource isn't NULL; size – the length of the message in bytes if flag is true (only set if size isn't NULL). The return value is 1 for success and 0 otherwise. Note: These methods delegate to the communicator

Definition at line 223 of file vtkMPIController.h.

int vtkMPIController::Iprobe ( int  source,
int  tag,
int flag,
int actualSource,
float type,
int size 
)
inline

Nonblocking test for a message. Inputs are: source – the source rank or ANY_SOURCE; tag – the tag value. Outputs are: flag – True if a message matches; actualSource – the rank sending the message (useful if ANY_SOURCE is used) if flag is True and actualSource isn't NULL; size – the length of the message in bytes if flag is true (only set if size isn't NULL). The return value is 1 for success and 0 otherwise. Note: These methods delegate to the communicator

Definition at line 227 of file vtkMPIController.h.

int vtkMPIController::Iprobe ( int  source,
int  tag,
int flag,
int actualSource,
double type,
int size 
)
inline

Nonblocking test for a message. Inputs are: source – the source rank or ANY_SOURCE; tag – the tag value. Outputs are: flag – True if a message matches; actualSource – the rank sending the message (useful if ANY_SOURCE is used) if flag is True and actualSource isn't NULL; size – the length of the message in bytes if flag is true (only set if size isn't NULL). The return value is 1 for success and 0 otherwise. Note: These methods delegate to the communicator

Definition at line 231 of file vtkMPIController.h.

int vtkMPIController::WaitAll ( const int  count,
vtkMPICommunicator::Request  requests[] 
)
inline

Given the request objects of a set of non-blocking operations (send and/or receive) this method blocks until all requests are complete. Note: This method delegates to the communicator

Definition at line 241 of file vtkMPIController.h.

int vtkMPIController::WaitAny ( const int  count,
vtkMPICommunicator::Request  requests[],
int idx 
)
inline

Blocks until one of the specified requests in the given request array completes. Upon return, the index in the array of the completed request object is returned through the argument list. Note: this method delegates to the communicator

Definition at line 250 of file vtkMPIController.h.

int vtkMPIController::WaitSome ( const int  count,
vtkMPICommunicator::Request  requests[],
vtkIntArray completed 
)

Blocks until one or more of the specified requests in the given request request array completes. Upon return, the list of handles that have completed is stored in the completed vtkIntArray.

bool vtkMPIController::TestAll ( const int  count,
vtkMPICommunicator::Request  requests[] 
)

Returns true iff all of the communication request objects are complete.

bool vtkMPIController::TestAny ( const int  count,
vtkMPICommunicator::Request  requests[],
int idx 
)

Returns true iff at least one of the communication request objects is complete. The index of the completed request, w.r.t. the requests array, is reflected in the out parameter idx. Otherwise, if none of the communication requests are complete false is returned.

bool vtkMPIController::TestSome ( const int  count,
vtkMPICommunicator::Request  requests[],
vtkIntArray completed 
)

Return true iff one or more of the communicator request objects is complete. The indices of the completed requests, w.r.t. the requests array, are given in the completed user-supplied vtkIntArray.

static const char* vtkMPIController::GetProcessorName ( )
static

Return true iff one or more of the communicator request objects is complete. The indices of the completed requests, w.r.t. the requests array, are given in the completed user-supplied vtkIntArray.

static void vtkMPIController::SetUseSsendForRMI ( int  use_send)
inlinestatic

When set to 1, TriggerRMI uses Ssend() instead of Send() calls. Off (0) by default.

Definition at line 286 of file vtkMPIController.h.

static int vtkMPIController::GetUseSsendForRMI ( )
inlinestatic

When set to 1, TriggerRMI uses Ssend() instead of Send() calls. Off (0) by default.

Definition at line 288 of file vtkMPIController.h.

void vtkMPIController::InitializeCommunicator ( vtkMPICommunicator comm)
protected
void vtkMPIController::InitializeRMICommunicator ( )
protected
virtual void vtkMPIController::TriggerRMIInternal ( int  remoteProcessId,
void *  arg,
int  argLength,
int  rmiTag,
bool  propagate 
)
protectedvirtual

Implementation for TriggerRMI() provides subclasses an opportunity to modify the behaviour eg. MPIController provides ability to use Ssend instead of Send.

Reimplemented from vtkMultiProcessController.

Friends And Related Function Documentation

friend class vtkMPIOutputWindow
friend

Definition at line 316 of file vtkMPIController.h.

Member Data Documentation

vtkMPICommunicator* vtkMPIController::WorldRMICommunicator
staticprotected

Definition at line 314 of file vtkMPIController.h.

int vtkMPIController::Initialized
staticprotected

Definition at line 319 of file vtkMPIController.h.

char vtkMPIController::ProcessorName[]
staticprotected

Definition at line 321 of file vtkMPIController.h.

int vtkMPIController::UseSsendForRMI
staticprotected

When set, TriggerRMI uses Ssend instead of Send.

Definition at line 325 of file vtkMPIController.h.


The documentation for this class was generated from the following file: