[Trilinos-Users] How are data transfer scheduled inside Epetra

Baker, Christopher G. bakercg at ornl.gov
Wed Jan 19 05:10:01 MST 2011


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
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.


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


More information about the Trilinos-Users mailing list