[Trilinos-Users] How are data transfer scheduled inside Epetra
Heroux, Michael A
maherou at sandia.gov
Tue Jan 18 23:17:22 MST 2011
The communication in Epetra is found in the Epetra_MpiDistributor class.
However, perhaps the best way to get the same behavior for your own code is to derive your class off of the Epetra_DistObject class. If you do this, you only need to provide a few simple check, pack and and unpack routine and let Epetra do all of the data exchange. A fairly simple example of how to do this is the Epetra_IntVector class:
If you derive your class from DistObject, you can immediately use the Import and Export methods on your objects, and use precomputed importers and exporters (the same ones you have already set up) to do the data exchange.
I hope this helps.
On 1/18/11 4:08 PM, "rrossi at cimne.upc.edu" <rrossi at cimne.upc.edu> wrote:
i would like to understand (at least superficially) how the communication is scheduled inside Epetra.
Let's suppose i define an Epetra_Import or Export. This defines a list of the data to be communicated to/from each processor.
the Import method "magically" takes this information and performs all of the communication.
I would like to use the same info to emulate the epetra using my own data structures, unfortunatelly i do not understand how the communication is
colored, that is, i am not sure of which processor will communicate first.
to explain it graphically let's suppose i have the 4 domains
1 | 2
3 | 4
for example we may want to say
that comunication happens at once between 1<->2 and 3<->4
and that after this first communication we need to communicate 1<->3 and 2<->4
followed possible by the diagonal communication.
this thing is obviously dealt with inside Epetra...just i don't understand how. Could anyone guide me on where to find this info?
Trilinos-Users mailing list
Trilinos-Users at software.sandia.gov
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Trilinos-Users