Epetra Package Browser (Single Doxygen Collection)  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members
Epetra_Distributor Class Referenceabstract

Epetra_Distributor: The Epetra Gather/Scatter Setup Base Class. More...

#include <Epetra_Distributor.h>

Inheritance diagram for Epetra_Distributor:
Inheritance graph
[legend]

Constructor and Destructor

virtual Epetra_DistributorClone ()=0
 Epetra_Distributor clone constructor. More...
 
virtual Epetra_DistributorReverseClone ()=0
 Create and extract the reverse version of the distributor. More...
 
virtual ~Epetra_Distributor ()
 Epetra_Distributor Destructor. More...
 

Gather/Scatter Constructors

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

Execute Gather/Scatter Operations (Constant size objects)

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

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

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

Print object to an output stream

virtual void Print (std::ostream &os) const =0
 

Detailed Description

Epetra_Distributor: The Epetra Gather/Scatter Setup Base Class.

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

Epetra_Distributor has default implementations, via Epetra_SerialDistributor and Epetra_MpiDistributor, for both serial execution and MPI distributed memory execution. It is meant to insulate the user from the specifics of communication that are not required for normal manipulation of linear algebra objects..

Definition at line 61 of file Epetra_Distributor.h.

Constructor & Destructor Documentation

virtual Epetra_Distributor::~Epetra_Distributor ( )
inlinevirtual

Epetra_Distributor Destructor.

Definition at line 76 of file Epetra_Distributor.h.

Member Function Documentation

virtual Epetra_Distributor* Epetra_Distributor::Clone ( )
pure virtual

Epetra_Distributor clone constructor.

Implemented in Epetra_MpiDistributor, and Epetra_SerialDistributor.

virtual Epetra_Distributor* Epetra_Distributor::ReverseClone ( )
pure virtual

Create and extract the reverse version of the distributor.

This is not a const method since a reverse distributor might need to be created. This works like Clone, returning a new object the user must deallocate.

Implemented in Epetra_MpiDistributor, and Epetra_SerialDistributor.

virtual int Epetra_Distributor::CreateFromSends ( const int &  NumExportIDs,
const int *  ExportPIDs,
bool  Deterministic,
int &  NumRemoteIDs 
)
pure 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
NumExportIDsIn Number of IDs that need to be sent from this processor.
ExportPIDsIn List of processors that will get the exported IDs.
DeterministicIn No op.
NumRemoteIDsOut Number of IDs this processor will be receiving.

Implemented in Epetra_MpiDistributor, and Epetra_SerialDistributor.

virtual int Epetra_Distributor::CreateFromRecvs ( const int &  NumRemoteIDs,
const int *  RemoteGIDs,
const int *  RemotePIDs,
bool  Deterministic,
int &  NumExportIDs,
int *&  ExportGIDs,
int *&  ExportPIDs 
)
pure 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
NumRemoteIDsIn Number of IDs this processor will be receiving.
RemoteGIDsIn List of IDs that this processor wants.
RemotePIDsIn List of processors that will send the remote IDs.
DeterministicIn No op.
NumExportIDsOut Number of IDs that need to be sent from this processor.
ExportPIDsOut List of processors that will get the exported IDs.

Implemented in Epetra_MpiDistributor, and Epetra_SerialDistributor.

virtual int Epetra_Distributor::CreateFromRecvs ( const int &  NumRemoteIDs,
const long long *  RemoteGIDs,
const int *  RemotePIDs,
bool  Deterministic,
int &  NumExportIDs,
long long *&  ExportGIDs,
int *&  ExportPIDs 
)
pure virtual
virtual int Epetra_Distributor::Do ( char *  export_objs,
int  obj_size,
int &  len_import_objs,
char *&  import_objs 
)
pure virtual

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

Implemented in Epetra_MpiDistributor, and Epetra_SerialDistributor.

virtual int Epetra_Distributor::DoReverse ( char *  export_objs,
int  obj_size,
int &  len_import_objs,
char *&  import_objs 
)
pure virtual

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

Implemented in Epetra_MpiDistributor, and Epetra_SerialDistributor.

virtual int Epetra_Distributor::DoPosts ( char *  export_objs,
int  obj_size,
int &  len_import_objs,
char *&  import_objs 
)
pure virtual

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

Implemented in Epetra_MpiDistributor, and Epetra_SerialDistributor.

virtual int Epetra_Distributor::DoWaits ( )
pure virtual

Wait on a set of posts.

Implemented in Epetra_MpiDistributor, and Epetra_SerialDistributor.

virtual int Epetra_Distributor::DoReversePosts ( char *  export_objs,
int  obj_size,
int &  len_import_objs,
char *&  import_objs 
)
pure virtual

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

Implemented in Epetra_MpiDistributor, and Epetra_SerialDistributor.

virtual int Epetra_Distributor::DoReverseWaits ( )
pure virtual

Wait on a reverse set of posts.

Implemented in Epetra_MpiDistributor, and Epetra_SerialDistributor.

virtual int Epetra_Distributor::Do ( char *  export_objs,
int  obj_size,
int *&  sizes,
int &  len_import_objs,
char *&  import_objs 
)
pure virtual

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

Implemented in Epetra_MpiDistributor, and Epetra_SerialDistributor.

virtual int Epetra_Distributor::DoReverse ( char *  export_objs,
int  obj_size,
int *&  sizes,
int &  len_import_objs,
char *&  import_objs 
)
pure virtual

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

Implemented in Epetra_MpiDistributor, and Epetra_SerialDistributor.

virtual int Epetra_Distributor::DoPosts ( char *  export_objs,
int  obj_size,
int *&  sizes,
int &  len_import_objs,
char *&  import_objs 
)
pure virtual

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

Implemented in Epetra_MpiDistributor, and Epetra_SerialDistributor.

virtual int Epetra_Distributor::DoReversePosts ( char *  export_objs,
int  obj_size,
int *&  sizes,
int &  len_import_objs,
char *&  import_objs 
)
pure virtual

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

Implemented in Epetra_MpiDistributor, and Epetra_SerialDistributor.

virtual void Epetra_Distributor::Print ( std::ostream &  os) const
pure virtual

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