ParaView
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
vtkMPIMoveData Class Reference

Moves/redistributes data between processes. More...

#include <vtkMPIMoveData.h>

Inheritance diagram for vtkMPIMoveData:
Inheritance graph
[legend]
Collaboration diagram for vtkMPIMoveData:
Collaboration graph
[legend]

List of all members.

Public Types

enum  MoveModes { PASS_THROUGH = 0, COLLECT = 1, CLONE = 2, COLLECT_AND_PASS_THROUGH = 3 }

Public Member Functions

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
virtual void InitializeForCommunicationForParaView ()
void SetController (vtkMultiProcessController *controller)
void SetMPIMToNSocketConnection (vtkMPIMToNSocketConnection *sc)
void SetClientDataServerSocketController (vtkMultiProcessController *)
virtual vtkMultiProcessControllerGetClientDataServerSocketController ()
void SetServerToClient ()
void SetServerToDataServer ()
void SetServerToRenderServer ()
virtual void SetServer (int)
void SetMoveModeToPassThrough ()
void SetMoveModeToCollect ()
void SetMoveModeToClone ()
virtual void SetMoveMode (int)
virtual void SetOutputDataType (int)
virtual int GetOutputDataType ()
virtual void SetDeliverOutlineToClient (int)
virtual int GetDeliverOutlineToClient ()

Static Public Member Functions

static vtkMPIMoveDataNew ()
static int IsTypeOf (const char *type)
static vtkMPIMoveDataSafeDownCast (vtkObject *o)
static void SetUseZLibCompression (bool b)
static bool GetUseZLibCompression ()

Protected Types

enum  Servers { CLIENT = 0, DATA_SERVER = 1, RENDER_SERVER = 2 }

Protected Member Functions

 vtkMPIMoveData ()
 ~vtkMPIMoveData ()
virtual int RequestDataObject (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
virtual int RequestInformation (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
virtual int RequestData (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
virtual int FillInputPortInformation (int port, vtkInformation *info)
void DataServerAllToN (vtkDataObject *inData, vtkDataObject *outData, int n)
void DataServerGatherAll (vtkDataObject *input, vtkDataObject *output)
void DataServerGatherToZero (vtkDataObject *input, vtkDataObject *output)
void DataServerSendToRenderServer (vtkDataObject *output)
void RenderServerReceiveFromDataServer (vtkDataObject *output)
void DataServerZeroSendToRenderServerZero (vtkDataObject *data)
void RenderServerZeroReceiveFromDataServerZero (vtkDataObject *data)
void RenderServerZeroBroadcast (vtkDataObject *data)
void DataServerSendToClient (vtkDataObject *output)
void ClientReceiveFromDataServer (vtkDataObject *output)
void ClearBuffer ()
void MarshalDataToBuffer (vtkDataObject *data)
void ReconstructDataFromBuffer (vtkDataObject *data)

Protected Attributes

vtkMultiProcessControllerController
vtkMultiProcessControllerClientDataServerSocketController
vtkMPIMToNSocketConnectionMPIMToNSocketConnection
int NumberOfBuffers
vtkIdTypeBufferLengths
vtkIdTypeBufferOffsets
char * Buffers
vtkIdType BufferTotalLength
int MoveMode
int Server
int OutputDataType
int DeliverOutlineToClient

Detailed Description

Moves/redistributes data between processes.

This class combines all the duplicate and collection requirements into one filter. It can move polydata and unstructured grid between processes. It can redistributed polydata from M to N processors.

Definition at line 34 of file vtkMPIMoveData.h.


Member Enumeration Documentation

Enumerator:
PASS_THROUGH 
COLLECT 
CLONE 
COLLECT_AND_PASS_THROUGH 

Definition at line 111 of file vtkMPIMoveData.h.

enum vtkMPIMoveData::Servers [protected]
Enumerator:
CLIENT 
DATA_SERVER 
RENDER_SERVER 

Definition at line 162 of file vtkMPIMoveData.h.


Constructor & Destructor Documentation

vtkMPIMoveData::vtkMPIMoveData ( ) [protected]
vtkMPIMoveData::~vtkMPIMoveData ( ) [protected]

Member Function Documentation

static vtkMPIMoveData* vtkMPIMoveData::New ( ) [static]

Reimplemented from vtkPassInputTypeAlgorithm.

virtual const char* vtkMPIMoveData::GetClassName ( ) [virtual]

Reimplemented from vtkPassInputTypeAlgorithm.

static int vtkMPIMoveData::IsTypeOf ( const char *  type) [static]

Reimplemented from vtkPassInputTypeAlgorithm.

virtual int vtkMPIMoveData::IsA ( const char *  type) [virtual]

Reimplemented from vtkPassInputTypeAlgorithm.

static vtkMPIMoveData* vtkMPIMoveData::SafeDownCast ( vtkObject o) [static]

Reimplemented from vtkPassInputTypeAlgorithm.

void vtkMPIMoveData::PrintSelf ( ostream &  os,
vtkIndent  indent 
) [virtual]

Reimplemented from vtkPassInputTypeAlgorithm.

virtual void vtkMPIMoveData::InitializeForCommunicationForParaView ( ) [virtual]

Use this method to initialize all communicators/sockets using ParaView defaults.

void vtkMPIMoveData::SetController ( vtkMultiProcessController controller)

Objects for communication. The controller is an MPI controller used to communicate between processes within one server (render or data). The client-data server socket controller is set on the client and data server and is used to communicate between the two. MPIMToNSocetConnection is set on the data server and render server when we are running with a render server. It has multiple sockets which are used to send data from the data server to the render server. ClientDataServerController==0 => One MPI program. MPIMToNSocketConnection==0 => Client-DataServer. MPIMToNSocketConnection==1 => Client-DataServer-RenderServer.

void vtkMPIMoveData::SetMPIMToNSocketConnection ( vtkMPIMToNSocketConnection sc)

Objects for communication. The controller is an MPI controller used to communicate between processes within one server (render or data). The client-data server socket controller is set on the client and data server and is used to communicate between the two. MPIMToNSocetConnection is set on the data server and render server when we are running with a render server. It has multiple sockets which are used to send data from the data server to the render server. ClientDataServerController==0 => One MPI program. MPIMToNSocketConnection==0 => Client-DataServer. MPIMToNSocketConnection==1 => Client-DataServer-RenderServer.

void vtkMPIMoveData::SetClientDataServerSocketController ( vtkMultiProcessController )

Objects for communication. The controller is an MPI controller used to communicate between processes within one server (render or data). The client-data server socket controller is set on the client and data server and is used to communicate between the two. MPIMToNSocetConnection is set on the data server and render server when we are running with a render server. It has multiple sockets which are used to send data from the data server to the render server. ClientDataServerController==0 => One MPI program. MPIMToNSocketConnection==0 => Client-DataServer. MPIMToNSocketConnection==1 => Client-DataServer-RenderServer.

virtual vtkMultiProcessController* vtkMPIMoveData::GetClientDataServerSocketController ( ) [virtual]

Objects for communication. The controller is an MPI controller used to communicate between processes within one server (render or data). The client-data server socket controller is set on the client and data server and is used to communicate between the two. MPIMToNSocetConnection is set on the data server and render server when we are running with a render server. It has multiple sockets which are used to send data from the data server to the render server. ClientDataServerController==0 => One MPI program. MPIMToNSocketConnection==0 => Client-DataServer. MPIMToNSocketConnection==1 => Client-DataServer-RenderServer.

void vtkMPIMoveData::SetServerToClient ( ) [inline]

Tell the object on which client/server it resides. Whether the sockets are set helps determine which servers are running.

Definition at line 65 of file vtkMPIMoveData.h.

void vtkMPIMoveData::SetServerToDataServer ( ) [inline]

Tell the object on which client/server it resides. Whether the sockets are set helps determine which servers are running.

Definition at line 66 of file vtkMPIMoveData.h.

void vtkMPIMoveData::SetServerToRenderServer ( ) [inline]

Tell the object on which client/server it resides. Whether the sockets are set helps determine which servers are running.

Definition at line 67 of file vtkMPIMoveData.h.

virtual void vtkMPIMoveData::SetServer ( int  ) [virtual]

Tell the object on which client/server it resides. Whether the sockets are set helps determine which servers are running.

void vtkMPIMoveData::SetMoveModeToPassThrough ( ) [inline]

Specify how the data is to be redistributed.

Definition at line 73 of file vtkMPIMoveData.h.

void vtkMPIMoveData::SetMoveModeToCollect ( ) [inline]

Specify how the data is to be redistributed.

Definition at line 74 of file vtkMPIMoveData.h.

void vtkMPIMoveData::SetMoveModeToClone ( ) [inline]

Specify how the data is to be redistributed.

Definition at line 75 of file vtkMPIMoveData.h.

virtual void vtkMPIMoveData::SetMoveMode ( int  ) [virtual]

Specify how the data is to be redistributed.

virtual void vtkMPIMoveData::SetOutputDataType ( int  ) [virtual]

Controls the output type. This is required because processes receiving data cannot know their output type in RequestDataObject without communicating with other processes. Since communicating with other processes in RequestDataObject is dangerous (can cause deadlock because it may happen out-of-sync), the application has to set the output type. The default is VTK_POLY_DATA. Currently, only VTK_UNSTRUCTURED_GRID and VTK_POLY_DATA are supported. Make sure to call this before any pipeline updates occur.

virtual int vtkMPIMoveData::GetOutputDataType ( ) [virtual]

Controls the output type. This is required because processes receiving data cannot know their output type in RequestDataObject without communicating with other processes. Since communicating with other processes in RequestDataObject is dangerous (can cause deadlock because it may happen out-of-sync), the application has to set the output type. The default is VTK_POLY_DATA. Currently, only VTK_UNSTRUCTURED_GRID and VTK_POLY_DATA are supported. Make sure to call this before any pipeline updates occur.

virtual void vtkMPIMoveData::SetDeliverOutlineToClient ( int  ) [virtual]

Sometimes, the data may be too huge to deliver to the client. In that case, the client can request that only the outline for the data may be delivered to the client. This is supported only for vtkPolyData. Off by default.

virtual int vtkMPIMoveData::GetDeliverOutlineToClient ( ) [virtual]

Sometimes, the data may be too huge to deliver to the client. In that case, the client can request that only the outline for the data may be delivered to the client. This is supported only for vtkPolyData. Off by default.

static void vtkMPIMoveData::SetUseZLibCompression ( bool  b) [static]

When set to true, zlib compression is used. False by default. This value has any effect only on the data-sender processes. The receiver always checks the received data to see if zlib decompression is required.

static bool vtkMPIMoveData::GetUseZLibCompression ( ) [static]

When set to true, zlib compression is used. False by default. This value has any effect only on the data-sender processes. The receiver always checks the received data to see if zlib decompression is required.

virtual int vtkMPIMoveData::RequestDataObject ( vtkInformation request,
vtkInformationVector **  inputVector,
vtkInformationVector outputVector 
) [protected, virtual]

Reimplemented from vtkPassInputTypeAlgorithm.

virtual int vtkMPIMoveData::RequestInformation ( vtkInformation request,
vtkInformationVector **  inputVector,
vtkInformationVector outputVector 
) [protected, virtual]

Reimplemented from vtkPassInputTypeAlgorithm.

virtual int vtkMPIMoveData::RequestData ( vtkInformation request,
vtkInformationVector **  inputVector,
vtkInformationVector outputVector 
) [protected, virtual]

Reimplemented from vtkPassInputTypeAlgorithm.

virtual int vtkMPIMoveData::FillInputPortInformation ( int  port,
vtkInformation info 
) [protected, virtual]

Reimplemented from vtkPassInputTypeAlgorithm.

void vtkMPIMoveData::DataServerAllToN ( vtkDataObject inData,
vtkDataObject outData,
int  n 
) [protected]
void vtkMPIMoveData::DataServerGatherAll ( vtkDataObject input,
vtkDataObject output 
) [protected]
void vtkMPIMoveData::DataServerGatherToZero ( vtkDataObject input,
vtkDataObject output 
) [protected]
void vtkMPIMoveData::DataServerSendToRenderServer ( vtkDataObject output) [protected]
void vtkMPIMoveData::RenderServerReceiveFromDataServer ( vtkDataObject output) [protected]
void vtkMPIMoveData::DataServerZeroSendToRenderServerZero ( vtkDataObject data) [protected]
void vtkMPIMoveData::RenderServerZeroReceiveFromDataServerZero ( vtkDataObject data) [protected]
void vtkMPIMoveData::RenderServerZeroBroadcast ( vtkDataObject data) [protected]
void vtkMPIMoveData::DataServerSendToClient ( vtkDataObject output) [protected]
void vtkMPIMoveData::ClientReceiveFromDataServer ( vtkDataObject output) [protected]
void vtkMPIMoveData::ClearBuffer ( ) [protected]
void vtkMPIMoveData::MarshalDataToBuffer ( vtkDataObject data) [protected]
void vtkMPIMoveData::ReconstructDataFromBuffer ( vtkDataObject data) [protected]

Member Data Documentation

Definition at line 133 of file vtkMPIMoveData.h.

Definition at line 134 of file vtkMPIMoveData.h.

Definition at line 135 of file vtkMPIMoveData.h.

Definition at line 148 of file vtkMPIMoveData.h.

Definition at line 149 of file vtkMPIMoveData.h.

Definition at line 150 of file vtkMPIMoveData.h.

char* vtkMPIMoveData::Buffers [protected]

Definition at line 151 of file vtkMPIMoveData.h.

Definition at line 152 of file vtkMPIMoveData.h.

Definition at line 158 of file vtkMPIMoveData.h.

Definition at line 159 of file vtkMPIMoveData.h.

Definition at line 169 of file vtkMPIMoveData.h.

Definition at line 170 of file vtkMPIMoveData.h.


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