[petsc-dev] ISRestoreNonlocalIS?

Barry Smith bsmith at mcs.anl.gov
Thu Nov 18 16:45:26 CST 2010

  It is possible there could be other methods added to IS that would be used by VecScatterCreate() and MatGet...Matrix() that "gather" needed information without everyone getting everything. What they are I don't know but by looking at the parallel VecScatterCreates  and MatGetSubMatrices() you might get some ideas.


On Nov 18, 2010, at 4:41 PM, Jed Brown wrote:

> On Thu, Nov 18, 2010 at 23:12, Dmitry Karpeev <karpeev at mcs.anl.gov> wrote:
> I'm not disagreeing, but I also don't see a general way of figuring
> out the off-rank
> columns for a submatrix that is destined to live on a subcomm.
> VecScatter figures out who is sending to who without allgathering everyone's indices.  I realize it's a slightly different problem and I don't have a complete solution right now.  And iscol often has some structure (even if just block).
> Another point is that since we anticipate a submatrix is extracted on a subcomm,
> the size of the submatrix and the subcomm might not grow in the weak
> scaling case.
> That depends whether the subdomains are different materials or just solver-friendly subdomains (e.g. to reduce iterations in ASM and make overlap less expensive in 3D).  Consider getting submatrices for Fluid and 
> The names are definitely an stop-gap fix: for consistency we'd have to change
> ISGetIndices -->  ISGetLocalIndices, ISGetTotalIndices -->
> ISGetIndices, VecGetArray --> VecGetLocalArray, etc.
> Maybe this will be done one day :-)
> I don't know, I like to endorse the domain decomposition philosophy and make the simple things (and in particular, storage) local by default, with parallel semantics where appropriate.  In particular, you should have to spell out a word with non-scalable connotations in order to call a blatantly non-scalable function.
> Jed

More information about the petsc-dev mailing list