[Trilinos-Users] How are data transfer scheduled inside Epetra
Baker, Christopher G.
bakercg at ornl.gov
Wed Jan 19 05:10:01 MST 2011
Riccardo,
The Epetra_Import, Epetra_Export and Epetra_Distributor classes handle this. They look at the elements to be communicated, based in the source and target maps passed to the Import/Export objects. These are analyzed to determine a configuration for packing all of the data (from a Epetra_DistObject) into contiguous arrays, so that a minimum number of communications can be performed. The packing/unpacking is done by subclass-specific implementations of the methods PackAndPrepare and UnpackAndCombine; a generic implementation of DoTransfer calls these and then passes the packed data to the distributor for communication.
There is some documentation of these implementation on the Epetra Doxygen page
http://trilinos.sandia.gov/packages/docs/dev/packages/epetra/doc/html/index.html
The inner working are not typically the concern of Epetra users. Of course, for detailed information, you are always free to examine the source code.
Chris
On 1/18/11 5:08 PM, "rrossi at cimne.upc.edu<mailto:rrossi at cimne.upc.edu>" <rrossi at cimne.upc.edu<mailto:rrossi at cimne.upc.edu>> wrote:
Dear list,
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?
thank you
Riccardo
More information about the Trilinos-Users
mailing list