|
Epetra Development
|
Epetra_MpiDistributor: The Epetra MPI implementation of the Epetra_Distributor Gather/Scatter Setup Class. More...
#include <Epetra_MpiDistributor.h>


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_Distributor * | Clone () |
| 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 |
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.
| 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.
| 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 No Op. |
| NumExportIDs | Out Number of IDs that need to be sent from this processor. |
| ExportGIDs | Out List of processors that will get the exported IDs. |
| ExportPIDs | Out 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.
| 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 No Op. |
| NumRemoteIDs | Out 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].
1.7.4