EpetraExt::ZoltanMpiDistributor Class Reference

EpetraExt::ZoltanMpiDistributor: The Zoltanized Epetra MPI implementation of the Epetra_Distributor Gather/Scatter Setup Class. More...

#include <EpetraExt_ZoltanMpiDistributor.h>

Inheritance diagram for EpetraExt::ZoltanMpiDistributor:

[legend]
List of all members.

Constructors/Destructor

 ZoltanMpiDistributor (const ZoltanMpiComm &Comm)
 Default Constructor.
 ZoltanMpiDistributor (const ZoltanMpiDistributor &Distributor)
 Copy Constructor.
Epetra_DistributorClone ()
 Clone method.
virtual ~ZoltanMpiDistributor ()
 Epetra_Comm Destructor.

Gather/Scatter Constructors

int CreateFromSends (const int &NumExportIDs, const int *ExportPIDs, bool Deterministic, int &NumRemoteIDs)
 Create Distributor object using list of process IDs to which we export.
int CreateFromRecvs (const int &NumRemoteIDs, const int *RemoteGIDs, const int *RemotePIDs, bool Deterministic, int &NumExportIDs, int *&ExportGIDs, int *&ExportPIDs)
 Create Distributor object using list of Remote global IDs and corresponding PIDs.

Execute Gather/Scatter Operations

int Do (char *export_objs, int obj_size, int &len_import_objs, char *&import_objs)
 Execute plan on buffer of export objects in a single step.
int DoReverse (char *export_objs, int obj_size, int &len_import_objs, char *&import_objs)
 Execute reverse of plan on buffer of export objects in a single step.
int DoPosts (char *export_objs, int obj_size, int &len_import_objs, char *&import_objs)
 Post buffer of export objects (can do other local work before executing Waits).
int DoWaits ()
 Wait on a set of posts.
int DoReversePosts (char *export_objs, int obj_size, int &len_import_objs, char *&import_objs)
 Do reverse post of buffer of export objects (can do other local work before executing Waits).
int DoReverseWaits ()
 Wait on a reverse set of posts.

Execute Gather/Scatter Operations (Non-constant size objects)

int Do (char *export_objs, int obj_size, int *&sizes, int &len_import_objs, char *&import_objs)
 Execute plan on buffer of export objects in a single step (object size may vary).
int DoReverse (char *export_objs, int obj_size, int *&sizes, int &len_import_objs, char *&import_objs)
 Execute reverse of plan on buffer of export objects in a single step (object size may vary).
int DoPosts (char *export_objs, int obj_size, int *&sizes, int &len_import_objs, char *&import_objs)
 Post buffer of export objects (can do other local work before executing Waits).
int DoReversePosts (char *export_objs, int obj_size, int *&sizes, int &len_import_objs, char *&import_objs)
 Do reverse post of buffer of export objects (can do other local work before executing Waits).

Print object to an output stream

void Print (ostream &os) const

Private Member Functions

int Resize (int *sizes, int *sum_recv_sizes)
 Resize method allow for variable message lengths.

Private Attributes

Zoltan_Comm_Obj * plan_
int tag_
const ZoltanMpiCommepComm_
const MPI_Comm comm_

Detailed Description

EpetraExt::ZoltanMpiDistributor: The Zoltanized Epetra MPI implementation of the Epetra_Distributor Gather/Scatter Setup Class.

The Epetra_MpiDistributor class is an MPI implement of Epetra_Distributor that encapsulates the general information and services needed for other Epetra classes to perform gather/scatter operations on a parallel computer. An Epetra_MpiDistributor object is actually produced by calling a method in the Epetra_MpiComm class.

Definition at line 49 of file EpetraExt_ZoltanMpiDistributor.h.


Constructor & Destructor Documentation

EpetraExt::ZoltanMpiDistributor::ZoltanMpiDistributor const ZoltanMpiComm Comm  ) 
 

Default Constructor.

Definition at line 35 of file EpetraExt_ZoltanMpiDistributor.cpp.

EpetraExt::ZoltanMpiDistributor::ZoltanMpiDistributor const ZoltanMpiDistributor Distributor  ) 
 

Copy Constructor.

Definition at line 46 of file EpetraExt_ZoltanMpiDistributor.cpp.

EpetraExt::ZoltanMpiDistributor::~ZoltanMpiDistributor  )  [virtual]
 

Epetra_Comm Destructor.

Definition at line 58 of file EpetraExt_ZoltanMpiDistributor.cpp.


Member Function Documentation

Epetra_Distributor* EpetraExt::ZoltanMpiDistributor::Clone  )  [inline, virtual]
 

Clone method.

Implements Epetra_Distributor.

Definition at line 62 of file EpetraExt_ZoltanMpiDistributor.h.

int EpetraExt::ZoltanMpiDistributor::CreateFromSends const int &  NumExportIDs,
const int *  ExportPIDs,
bool  Deterministic,
int &  NumRemoteIDs
[virtual]
 

Create Distributor object using list of process IDs to which we export.

Take a list of Process IDs and construct a plan for efficiently scattering to these processes. Return the number of IDs being sent to me.

Parameters:
NumExportIDs In Number of IDs that need to be sent from this processor.
ExportPIDs In List of processors that will get the exported IDs.
Deterministic In If set to true, communication will be deterministic (repeatable) from call to call.
NumRemoteIDs Out Number of IDs this processor will be receiving.

Implements Epetra_Distributor.

int EpetraExt::ZoltanMpiDistributor::CreateFromRecvs const int &  NumRemoteIDs,
const int *  RemoteGIDs,
const int *  RemotePIDs,
bool  Deterministic,
int &  NumExportIDs,
int *&  ExportGIDs,
int *&  ExportPIDs
[virtual]
 

Create Distributor object using list of Remote global IDs and corresponding PIDs.

Take a list of global IDs and construct a plan for efficiently scattering to these processes. Return the number and list of IDs being sent by me.

Parameters:
NumRemoteIDs In Number of IDs this processor will be receiving.
RemoteGIDs In List of IDs that this processor wants.
RemotePIDs In List of processors that will send the remote IDs.
Deterministic In If set to true, communication will be deterministic (repeatable) from call to call.
NumExportIDs Out Number of IDs that need to be sent from this processor.
ExportPIDs Out List of processors that will get the exported IDs.

Implements Epetra_Distributor.

int EpetraExt::ZoltanMpiDistributor::Do char *  export_objs,
int  obj_size,
int &  len_import_objs,
char *&  import_objs
[virtual]
 

Execute plan on buffer of export objects in a single step.

Implements Epetra_Distributor.

int EpetraExt::ZoltanMpiDistributor::DoReverse char *  export_objs,
int  obj_size,
int &  len_import_objs,
char *&  import_objs
[virtual]
 

Execute reverse of plan on buffer of export objects in a single step.

Implements Epetra_Distributor.

int EpetraExt::ZoltanMpiDistributor::DoPosts char *  export_objs,
int  obj_size,
int &  len_import_objs,
char *&  import_objs
[virtual]
 

Post buffer of export objects (can do other local work before executing Waits).

Implements Epetra_Distributor.

int EpetraExt::ZoltanMpiDistributor::DoWaits  )  [virtual]
 

Wait on a set of posts.

Implements Epetra_Distributor.

Definition at line 179 of file EpetraExt_ZoltanMpiDistributor.cpp.

int EpetraExt::ZoltanMpiDistributor::DoReversePosts char *  export_objs,
int  obj_size,
int &  len_import_objs,
char *&  import_objs
[virtual]
 

Do reverse post of buffer of export objects (can do other local work before executing Waits).

Implements Epetra_Distributor.

int EpetraExt::ZoltanMpiDistributor::DoReverseWaits  )  [virtual]
 

Wait on a reverse set of posts.

Implements Epetra_Distributor.

Definition at line 199 of file EpetraExt_ZoltanMpiDistributor.cpp.

int EpetraExt::ZoltanMpiDistributor::Do char *  export_objs,
int  obj_size,
int *&  sizes,
int &  len_import_objs,
char *&  import_objs
[virtual]
 

Execute plan on buffer of export objects in a single step (object size may vary).

Implements Epetra_Distributor.

int EpetraExt::ZoltanMpiDistributor::DoReverse char *  export_objs,
int  obj_size,
int *&  sizes,
int &  len_import_objs,
char *&  import_objs
[virtual]
 

Execute reverse of plan on buffer of export objects in a single step (object size may vary).

Implements Epetra_Distributor.

int EpetraExt::ZoltanMpiDistributor::DoPosts char *  export_objs,
int  obj_size,
int *&  sizes,
int &  len_import_objs,
char *&  import_objs
[virtual]
 

Post buffer of export objects (can do other local work before executing Waits).

Implements Epetra_Distributor.

int EpetraExt::ZoltanMpiDistributor::DoReversePosts char *  export_objs,
int  obj_size,
int *&  sizes,
int &  len_import_objs,
char *&  import_objs
[virtual]
 

Do reverse post of buffer of export objects (can do other local work before executing Waits).

Implements Epetra_Distributor.

void EpetraExt::ZoltanMpiDistributor::Print ostream &  os  )  const [virtual]
 

Implements Epetra_Distributor.

Definition at line 275 of file EpetraExt_ZoltanMpiDistributor.cpp.

int EpetraExt::ZoltanMpiDistributor::Resize int *  sizes,
int *  sum_recv_sizes
[private]
 

Resize method allow for variable message lengths.


Member Data Documentation

Zoltan_Comm_Obj* EpetraExt::ZoltanMpiDistributor::plan_ [private]
 

Definition at line 191 of file EpetraExt_ZoltanMpiDistributor.h.

int EpetraExt::ZoltanMpiDistributor::tag_ [private]
 

Definition at line 193 of file EpetraExt_ZoltanMpiDistributor.h.

const ZoltanMpiComm* EpetraExt::ZoltanMpiDistributor::epComm_ [private]
 

Definition at line 195 of file EpetraExt_ZoltanMpiDistributor.h.

const MPI_Comm EpetraExt::ZoltanMpiDistributor::comm_ [private]
 

Definition at line 196 of file EpetraExt_ZoltanMpiDistributor.h.


The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:32:07 2008 for EpetraExt Package Browser (Single Doxygen Collection) by doxygen 1.3.9.1