Main Page   Class Hierarchy   Alphabetical List   Compound List   Compound Members   Related Pages  

vtkMPIController Class Reference

Process communication using MPI. More...

#include <vtkMPIController.h>

Inheritance diagram for vtkMPIController:

Inheritance graph
[legend]
Collaboration diagram for vtkMPIController:

Collaboration graph
[legend]
List of all members.

Public Methods

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
void Initialize (int argc, char *arcv[])
void SingleMethodExecute ()
void MultipleMethodExecute ()
int Send (int *data, int length, int remoteProcessId, int tag)
int Send (unsigned long *data, int length, int remoteProcessId, int tag)
int Send (char *data, int length, int remoteProcessId, int tag)
int Send (float *data, int length, int remoteProcessId, int tag)
int Send (vtkDataObject *data, int remoteId, int tag)
int Receive (int *data, int length, int remoteProcessId, int tag)
int Receive (unsigned long *data, int length, int remoteProcessId, int tag)
int Receive (char *data, int length, int remoteProcessId, int tag)
int Receive (float *data, int length, int remoteProcessId, int tag)
int Receive (vtkDataObject *data, int remoteId, int tag)

Static Public Methods

vtkMPIController * New ()
int IsTypeOf (const char *type)
vtkMPIController * SafeDownCast (vtkObject *o)

Protected Methods

 vtkMPIController ()
 ~vtkMPIController ()
 vtkMPIController (const vtkMPIController &)
void operator= (const vtkMPIController &)

Protected Attributes

int Initialized

Detailed Description

Process communication using MPI.

Date:
2000/12/10 20:08:25
Revision:
1.16

vtkMPIController supplies a minimal set of communication methods as an abstract interface through a variety of multi-processing communication techniques. It accepts Sends and Receives as well as implements remove method invocations (RMI) The "RegisterAndGetGlobalController" ensures that at most one controller exists per process. In most cases, the controller will be created automatically by a higher level object. The intent is to generalize this class to have different multiprocessing options: Threads, forking processes with shared memory or pipes. The initialization is modeled after vtkMultiThreader, and may merge with vtkMultiThreader in the future.

See also:
vtkDownStreamPort vtkUpStreamPort vtkMultiThreader vtkMultiProcessController


Member Function Documentation

virtual const char* vtkMPIController::GetClassName   [virtual]
 

Return the class name as a string. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkMultiProcessController.

void vtkMPIController::Initialize int    argc,
char *    arcv[]
 

This method is for setting up the processes.

virtual int vtkMPIController::IsA const char *    type [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.

int vtkMPIController::IsTypeOf const char *    type [static]
 

Return 1 if this class type 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.

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.

vtkMPIController* vtkMPIController::New   [static]
 

Create an object with Debug turned off, modified time initialized to zero, and reference counting on.

Reimplemented from vtkMultiProcessController.

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.

int vtkMPIController::Receive vtkDataObject   data,
int    remoteId,
int    tag
[inline, virtual]
 

This method receives a data object from a corresponding send. It blocks until the receive is finished.

Reimplemented from vtkMultiProcessController.

int vtkMPIController::Receive int *    data,
int    length,
int    remoteProcessId,
int    tag
[virtual]
 

This method receives data from a corresponding send. It blocks until the receive is finished. It calls methods in "data" to communicate the sending data.

Implements vtkMultiProcessController.

vtkMPIController* vtkMPIController::SafeDownCast vtkObject   o [static]
 

Will cast the supplied object to vtkObject* is this is a safe operation (i.e., a safe downcast); otherwise NULL is returned. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkMultiProcessController.

int vtkMPIController::Send vtkDataObject   data,
int    remoteId,
int    tag
[inline, virtual]
 

This method sends an object to another process. Tag eliminates ambiguity and is used to match sends to receives.

Reimplemented from vtkMultiProcessController.

int vtkMPIController::Send int *    data,
int    length,
int    remoteProcessId,
int    tag
[virtual]
 

This method sends data to another process. Tag eliminates ambiguity when multiple sends or receives exist in the same process.

Implements vtkMultiProcessController.

void vtkMPIController::SingleMethodExecute   [virtual]
 

Execute the SingleMethod (as define by SetSingleMethod) using this->NumberOfProcesses processes. You should not expect this to return.

Implements vtkMultiProcessController.


The documentation for this class was generated from the following file:
Generated on Tue Mar 19 13:29:44 2002 for VTK by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002