Epetra Development
Epetra_MpiDistributor Class Reference

Epetra_MpiDistributor: The Epetra MPI implementation of the Epetra_Distributor Gather/Scatter Setup Class. More...

#include <Epetra_MpiDistributor.h>

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

List of all members.

Public Member Functions

Constructors/Destructor
 Epetra_MpiDistributor (const Epetra_MpiComm &Comm)
 Epetra_Comm Default Constructor.
 Epetra_MpiDistributor (const Epetra_MpiDistributor &Distributor)
 Epetra_Comm Copy Constructor.
Epetra_DistributorClone ()
 Clone method.
virtual ~Epetra_MpiDistributor ()
 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)
Attribute Accessor Methods
int NumReceives () const
 The number of procs from which we will receive data.
int NumSends () const
 The number of procs to which we will send data.
int MaxSendLength () const
 Maximum number of values that this proc is sending to another single proc.
int TotalReceiveLength () const
 Total number of values that this proc is receiving from other procs.
const int * ProcsFrom () const
 A list of procs sending values to this proc.
const int * ProcsTo () const
 A list of procs to which this proc is sending values.
const int * LengthsFrom () const
 Number of values we're receiving from each proc.
const int * LengthsTo () const
 Number of values we're sending to each proc.
Print object to an output stream
void Print (ostream &os) const

Detailed Description

Epetra_MpiDistributor: The 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.


Member Function Documentation

int Epetra_MpiDistributor::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:
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.
ExportGIDsOut List of processors that will get the exported IDs.
ExportPIDsOut List of processors that will get the exported IDs.

Implements Epetra_Distributor.

int Epetra_MpiDistributor::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:
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.

Implements Epetra_Distributor.

const int* Epetra_MpiDistributor::LengthsFrom ( ) const [inline]

Number of values we're receiving from each proc.

We will receive LengthsFrom[i] values from proc ProcsFrom[i].

const int* Epetra_MpiDistributor::LengthsTo ( ) const [inline]

Number of values we're sending to each proc.

We will send LengthsTo[i] values to procs ProcsTo[i].


The documentation for this class was generated from the following file:
 All Classes Files Functions Variables Enumerations Enumerator