Go to the documentation of this file.
38 #ifndef vtkMPICommunicator_h
39 #define vtkMPICommunicator_h
97 int remoteProcessId,
int tag);
99 int remoteProcessId,
int tag);
120 #ifdef VTK_USE_64BIT_IDS
134 int remoteProcessId,
int tag,
Request& req);
143 #ifdef VTK_USE_64BIT_IDS
175 int operation,
int destProcessId);
178 Operation *operation,
int destProcessId);
222 const int count,
Request requests[],
int &NCompleted,
int *completed );
239 int& NCompleted,
int *completed);
247 return this->MPIComm;
310 int remoteProcessId,
int tag,
312 int useCopy,
int& senderId);
static int CheckForMPIError(int err)
int TestAll(const int count, Request requests[], int &flag)
void Duplicate(vtkMPICommunicator *source)
GLsizei GLsizei GLenum GLenum const GLvoid * data
int WaitSome(const int count, Request requests[], int &NCompleted, int *completed)
int NoBlockReceive(unsigned char *data, int length, int remoteProcessId, int tag, Request &req)
int NoBlockReceive(float *data, int length, int remoteProcessId, int tag, Request &req)
GLuint GLuint GLsizei count
Used to send/receive messages in a multiprocess environment.
int Initialize(vtkProcessGroup *group)
int NoBlockSend(const unsigned char *data, int length, int remoteProcessId, int tag, Request &req)
virtual int ScatterVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType length, int type, int srcProcessId)
#define vtkTypeMacro(thisClass, superclass)
virtual int AllReduceVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType length, int type, Operation *operation)
int NoBlockSend(const float *data, int length, int remoteProcessId, int tag, Request &req)
GLuint GLsizei GLsizei * length
virtual int GatherVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType length, int type, int destProcessId)
int NoBlockReceive(char *data, int length, int remoteProcessId, int tag, Request &req)
virtual int BroadcastVoidArray(void *data, vtkIdType length, int type, int srcProcessId)
Class for creating user defined MPI communicators.
static char * Allocate(size_t size)
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
static vtkMPICommunicator * New()
int WaitAny(const int count, Request requests[], int &idx)
virtual int ReduceVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType length, int type, int operation, int destProcessId)
int NoBlockReceive(unsigned long *data, int length, int remoteProcessId, int tag, Request &req)
#define vtkSetClampMacro(name, type, min, max)
virtual int SendVoidArray(const void *data, vtkIdType length, int type, int remoteProcessId, int tag)
int WaitAll(const int count, Request requests[])
int InitializeNumberOfProcesses()
int Iprobe(int source, int tag, int *flag, int *actualSource, float *type, int *size)
void InitializeCopy(vtkMPICommunicator *source)
#define VTKPARALLELMPI_EXPORT
virtual int AllGatherVVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int type)
static vtkMPICommunicator * WorldCommunicator
int Iprobe(int source, int tag, int *flag, int *actualSource)
a simple class to control print indentation
int TestSome(const int count, Request requests[], int &NCompleted, int *completed)
virtual int AllReduceVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType length, int type, int operation)
#define vtkGetMacro(name, type)
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, int *type, int *size)
int NoBlockSend(const int *data, int length, int remoteProcessId, int tag, Request &req)
static vtkMPICommunicator * GetWorldCommunicator()
virtual int ReceiveDataInternal(char *data, int length, int sizeoftype, int remoteProcessId, int tag, vtkMPICommunicatorReceiveDataInfo *info, int useCopy, int &senderId)
int NoBlockReceive(int *data, int length, int remoteProcessId, int tag, Request &req)
virtual int ReduceVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType length, int type, Operation *operation, int destProcessId)
vtkBooleanMacro(IgnoreDriverBugs, bool)
void CopyFrom(vtkMPICommunicator *source)
int NoBlockReceive(double *data, int length, int remoteProcessId, int tag, Request &req)
vtkSetMacro(IgnoreDriverBugs, bool)
static void Free(char *ptr)
void PrintSelf(ostream &os, vtkIndent indent)
A subgroup of processes from a communicator.
int TestAny(const int count, Request requests[], int &idx, int &flag)
int InitializeExternal(vtkMPICommunicatorOpaqueComm *comm)
int Iprobe(int source, int tag, int *flag, int *actualSource, double *type, int *size)
virtual int GatherVVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType sendLength, vtkIdType *recvLengths, vtkIdType *offsets, int type, int destProcessId)
vtkMPICommunicatorOpaqueComm * MPIComm
vtkMPICommunicatorOpaqueComm * GetMPIComm()
virtual int AllGatherVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType length, int type)
virtual int ScatterVVoidArray(const void *sendBuffer, void *recvBuffer, vtkIdType *sendLengths, vtkIdType *offsets, vtkIdType recvLength, int type, int srcProcessId)
int NoBlockSend(const unsigned long *data, int length, int remoteProcessId, int tag, Request &req)
Process communication using MPI.
virtual int ReceiveVoidArray(void *data, vtkIdType length, int type, int remoteProcessId, int tag)
GLuint GLuint GLsizei GLenum type
vtkMPICommunicatorOpaqueRequest * Req
int Iprobe(int source, int tag, int *flag, int *actualSource, const char *type, int *size)
int NoBlockSend(const double *data, int length, int remoteProcessId, int tag, Request &req)
int SplitInitialize(vtkCommunicator *oldcomm, int color, int key)
int NoBlockSend(const char *data, int length, int remoteProcessId, int tag, Request &req)