ParaView
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
vtkMPIMoveData Class Reference

Moves/redistributes data between processes. More...

#include <vtkMPIMoveData.h>

Inherits vtkPassInputTypeAlgorithm.

Collaboration diagram for vtkMPIMoveData:
Collaboration graph
[legend]

Public Types

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

Public Member Functions

virtual const char * GetClassName ()
 
virtual int IsA (const char *type)
 
void PrintSelf (ostream &os, vtkIndent indent)
 
virtual void InitializeForCommunicationForParaView ()
 Use this method to initialize all communicators/sockets using ParaView defaults. More...
 
void SetMoveModeToPassThrough ()
 Specify how the data is to be redistributed. More...
 
void SetMoveModeToCollect ()
 
void SetMoveModeToClone ()
 
virtual void SetMoveMode (int)
 
bool GetOutputGeneratedOnProcess ()
 vtkMPIMoveData doesn't necessarily generate a valid output data on all the involved processes (depending on the MoveMode and Server ivars). More...
 
void SetController (vtkMultiProcessController *controller)
 Objects for communication. More...
 
void SetMPIMToNSocketConnection (vtkMPIMToNSocketConnection *sc)
 Objects for communication. More...
 
void SetClientDataServerSocketController (vtkMultiProcessController *)
 Objects for communication. More...
 
virtual vtkMultiProcessController * GetClientDataServerSocketController ()
 Objects for communication. More...
 
void SetServerToClient ()
 Tell the object on which client/server it resides. More...
 
void SetServerToDataServer ()
 Tell the object on which client/server it resides. More...
 
void SetServerToRenderServer ()
 Tell the object on which client/server it resides. More...
 
virtual void SetServer (int)
 Tell the object on which client/server it resides. More...
 
virtual int GetServer ()
 Tell the object on which client/server it resides. More...
 
virtual void SetOutputDataType (int)
 Controls the output type. More...
 
virtual int GetOutputDataType ()
 Controls the output type. More...
 
virtual void SetSkipDataServerGatherToZero (bool)
 When set, vtkMPIMoveData will skip the gather-to-root-node process altogether. More...
 
virtual bool GetSkipDataServerGatherToZero ()
 When set, vtkMPIMoveData will skip the gather-to-root-node process altogether. More...
 

Static Public Member Functions

static vtkMPIMoveDataNew ()
 
static int IsTypeOf (const char *type)
 
static vtkMPIMoveDataSafeDownCast (vtkObject *o)
 
static void SetUseZLibCompression (bool b)
 When set to true, zlib compression is used. More...
 
static bool GetUseZLibCompression ()
 When set to true, zlib compression is used. More...
 

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 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

vtkMultiProcessController * Controller
 
vtkMultiProcessController * ClientDataServerSocketController
 
vtkMPIMToNSocketConnectionMPIMToNSocketConnection
 
int NumberOfBuffers
 
vtkIdType * BufferLengths
 
vtkIdType * BufferOffsets
 
char * Buffers
 
vtkIdType BufferTotalLength
 
int MoveMode
 
int Server
 
bool SkipDataServerGatherToZero
 
int OutputDataType
 

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. Update: This filter can now support delivering vtkUniformGridAMR datasets in PASS_THROUGH and/or COLLECT modes.

Definition at line 38 of file vtkMPIMoveData.h.

Member Typedef Documentation

◆ Superclass

typedef vtkPassInputTypeAlgorithm vtkMPIMoveData::Superclass

Definition at line 42 of file vtkMPIMoveData.h.

Member Enumeration Documentation

◆ MoveModes

Enumerator
PASS_THROUGH 
COLLECT 
CLONE 
COLLECT_AND_PASS_THROUGH 

Definition at line 134 of file vtkMPIMoveData.h.

◆ Servers

enum vtkMPIMoveData::Servers
protected
Enumerator
CLIENT 
DATA_SERVER 
RENDER_SERVER 

Definition at line 182 of file vtkMPIMoveData.h.

Constructor & Destructor Documentation

◆ vtkMPIMoveData()

vtkMPIMoveData::vtkMPIMoveData ( )
protected

◆ ~vtkMPIMoveData()

vtkMPIMoveData::~vtkMPIMoveData ( )
protected

Member Function Documentation

◆ New()

static vtkMPIMoveData* vtkMPIMoveData::New ( )
static

◆ GetClassName()

virtual const char* vtkMPIMoveData::GetClassName ( )
virtual

◆ IsTypeOf()

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

◆ IsA()

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

◆ SafeDownCast()

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

◆ PrintSelf()

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

◆ InitializeForCommunicationForParaView()

virtual void vtkMPIMoveData::InitializeForCommunicationForParaView ( )
virtual

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

◆ SetController()

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.

◆ SetMPIMToNSocketConnection()

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.

◆ SetClientDataServerSocketController()

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.

◆ GetClientDataServerSocketController()

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.

◆ SetServerToClient()

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 77 of file vtkMPIMoveData.h.

◆ SetServerToDataServer()

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 78 of file vtkMPIMoveData.h.

◆ SetServerToRenderServer()

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 79 of file vtkMPIMoveData.h.

◆ SetServer()

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.

◆ GetServer()

virtual int vtkMPIMoveData::GetServer ( )
virtual

Tell the object on which client/server it resides.

Whether the sockets are set helps determine which servers are running.

◆ SetMoveModeToPassThrough()

void vtkMPIMoveData::SetMoveModeToPassThrough ( )
inline

Specify how the data is to be redistributed.

Definition at line 87 of file vtkMPIMoveData.h.

◆ SetMoveModeToCollect()

void vtkMPIMoveData::SetMoveModeToCollect ( )
inline

Definition at line 88 of file vtkMPIMoveData.h.

◆ SetMoveModeToClone()

void vtkMPIMoveData::SetMoveModeToClone ( )
inline

Definition at line 89 of file vtkMPIMoveData.h.

◆ SetMoveMode()

virtual void vtkMPIMoveData::SetMoveMode ( int  )
virtual

◆ SetOutputDataType()

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.

◆ GetOutputDataType()

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.

◆ SetUseZLibCompression()

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.

◆ GetUseZLibCompression()

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.

◆ GetOutputGeneratedOnProcess()

bool vtkMPIMoveData::GetOutputGeneratedOnProcess ( )

vtkMPIMoveData doesn't necessarily generate a valid output data on all the involved processes (depending on the MoveMode and Server ivars).

This returns true if valid data is available on the current processes after successful Update() given the current ivars).

◆ SetSkipDataServerGatherToZero()

virtual void vtkMPIMoveData::SetSkipDataServerGatherToZero ( bool  )
virtual

When set, vtkMPIMoveData will skip the gather-to-root-node process altogether.

This is useful when the data is already cloned on the server-nodes or we are interested in the root-node result alone.

◆ GetSkipDataServerGatherToZero()

virtual bool vtkMPIMoveData::GetSkipDataServerGatherToZero ( )
virtual

When set, vtkMPIMoveData will skip the gather-to-root-node process altogether.

This is useful when the data is already cloned on the server-nodes or we are interested in the root-node result alone.

◆ RequestDataObject()

virtual int vtkMPIMoveData::RequestDataObject ( vtkInformation *  request,
vtkInformationVector **  inputVector,
vtkInformationVector *  outputVector 
)
protectedvirtual

◆ RequestData()

virtual int vtkMPIMoveData::RequestData ( vtkInformation *  request,
vtkInformationVector **  inputVector,
vtkInformationVector *  outputVector 
)
protectedvirtual

◆ FillInputPortInformation()

virtual int vtkMPIMoveData::FillInputPortInformation ( int  port,
vtkInformation *  info 
)
protectedvirtual

◆ DataServerAllToN()

void vtkMPIMoveData::DataServerAllToN ( vtkDataObject *  inData,
vtkDataObject *  outData,
int  n 
)
protected

◆ DataServerGatherAll()

void vtkMPIMoveData::DataServerGatherAll ( vtkDataObject *  input,
vtkDataObject *  output 
)
protected

◆ DataServerGatherToZero()

void vtkMPIMoveData::DataServerGatherToZero ( vtkDataObject *  input,
vtkDataObject *  output 
)
protected

◆ DataServerSendToRenderServer()

void vtkMPIMoveData::DataServerSendToRenderServer ( vtkDataObject *  output)
protected

◆ RenderServerReceiveFromDataServer()

void vtkMPIMoveData::RenderServerReceiveFromDataServer ( vtkDataObject *  output)
protected

◆ DataServerZeroSendToRenderServerZero()

void vtkMPIMoveData::DataServerZeroSendToRenderServerZero ( vtkDataObject *  data)
protected

◆ RenderServerZeroReceiveFromDataServerZero()

void vtkMPIMoveData::RenderServerZeroReceiveFromDataServerZero ( vtkDataObject *  data)
protected

◆ RenderServerZeroBroadcast()

void vtkMPIMoveData::RenderServerZeroBroadcast ( vtkDataObject *  data)
protected

◆ DataServerSendToClient()

void vtkMPIMoveData::DataServerSendToClient ( vtkDataObject *  output)
protected

◆ ClientReceiveFromDataServer()

void vtkMPIMoveData::ClientReceiveFromDataServer ( vtkDataObject *  output)
protected

◆ ClearBuffer()

void vtkMPIMoveData::ClearBuffer ( )
protected

◆ MarshalDataToBuffer()

void vtkMPIMoveData::MarshalDataToBuffer ( vtkDataObject *  data)
protected

◆ ReconstructDataFromBuffer()

void vtkMPIMoveData::ReconstructDataFromBuffer ( vtkDataObject *  data)
protected

Member Data Documentation

◆ Controller

vtkMultiProcessController* vtkMPIMoveData::Controller
protected

Definition at line 152 of file vtkMPIMoveData.h.

◆ ClientDataServerSocketController

vtkMultiProcessController* vtkMPIMoveData::ClientDataServerSocketController
protected

Definition at line 153 of file vtkMPIMoveData.h.

◆ MPIMToNSocketConnection

vtkMPIMToNSocketConnection* vtkMPIMoveData::MPIMToNSocketConnection
protected

Definition at line 154 of file vtkMPIMoveData.h.

◆ NumberOfBuffers

int vtkMPIMoveData::NumberOfBuffers
protected

Definition at line 167 of file vtkMPIMoveData.h.

◆ BufferLengths

vtkIdType* vtkMPIMoveData::BufferLengths
protected

Definition at line 168 of file vtkMPIMoveData.h.

◆ BufferOffsets

vtkIdType* vtkMPIMoveData::BufferOffsets
protected

Definition at line 169 of file vtkMPIMoveData.h.

◆ Buffers

char* vtkMPIMoveData::Buffers
protected

Definition at line 170 of file vtkMPIMoveData.h.

◆ BufferTotalLength

vtkIdType vtkMPIMoveData::BufferTotalLength
protected

Definition at line 171 of file vtkMPIMoveData.h.

◆ MoveMode

int vtkMPIMoveData::MoveMode
protected

Definition at line 177 of file vtkMPIMoveData.h.

◆ Server

int vtkMPIMoveData::Server
protected

Definition at line 178 of file vtkMPIMoveData.h.

◆ SkipDataServerGatherToZero

bool vtkMPIMoveData::SkipDataServerGatherToZero
protected

Definition at line 180 of file vtkMPIMoveData.h.

◆ OutputDataType

int vtkMPIMoveData::OutputDataType
protected

Definition at line 189 of file vtkMPIMoveData.h.


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