[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