<div class="gmail_quote">On Fri, Jul 8, 2011 at 16:40, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div id=":613"> Are we planning on making the VecScatter the communications central for PETSc?<br></div></blockquote><div><br></div><div>What about moving integer data over the same pipes? I'm not sure it needs to be that complicated since it should be basically only a difference in the packing.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div id=":613">
I can add a VecScatterGetFromRank() (ugly name) that returns the rank for each received entry; there might be enough information to do this without any additional communication. There could also be a VecScatterGetToRank() (ugly name) indicating the process to whom we are sending data. Etc etc.</div>
</blockquote></div><div><br></div><div>If we could move integer data with VecScatter, then I wouldn't be so worried about these more specific queries because the cost to construct the VecScatter is already a bit higher than one execution of VecScatter to deliver these ranks or whatever else.</div>
<div><br></div>Saving the IS used to create the VecScatter seems useful, especially if we go implement the VecScatterMerge() that we discussed earlier (to increase the communication granularity for DMComposite and similar).