[petsc-dev] Question about PCGASMSetSubdomains()

Fande Kong fdkong.jd at gmail.com
Sun Jun 26 18:41:38 CDT 2016


Hi Barry,

There is no need to support osm->n>1 in GASM, I think.  There should be
only one local subdomain on each process. These subdomains are grouped to
form a few multi-rank subdomains. A multi-rank subdomain is recognized
using the sub-communcator.  A  multi-rank subdomain could be solved using
superlu in parallel.  The reason for doing those things is to improve the
converge rate, and to fix the number of multi-rank subdomains when
increasing the number of processor cores for the scalability.

In other words, we want to form a "large" subproblem for solving. But on
the other hand, we allow more than one local subdomains to make subproblems
"small". If people fall into the latter case, should just use ASM instead
of GASM. If users want to group the ith (numbered in local) subdomains to
form the ith multi-rank subdomains. They should just use the filedsplit
preconditioner, where a GASM is applied to each field.

How do you think?

Fande Kong,

On Sun, Jun 26, 2016 at 4:54 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:

>
> > On Jun 26, 2016, at 5:48 PM, Fande Kong <fdkong.jd at gmail.com> wrote:
> >
> > Barry,
> >
> > Good questions.
> >
> > Yes, we are assuming the index sets on each process are somehow ordered.
> There is no way to check this. How to decompose the domain is determined by
> users, and they could choose any ways  they want.
> >
> >  But we could check this condition. The number of local subdomains
> should be the same on all processors, that is, osm->n should be the same
> value on all processors.
>
>    But this is in that sub communicator. If different processes have the
> sub communicators in a different order then the communication for GASM will
> hang as some process is trying to communicate with the "wrong set" of other
> processes. Hmm, doesn't seem to be any easy way to detect this.
>
>    Also can you document this requirement in the manual page for
> PCGASMSetSubdomains()?
>
>    Thanks
>
>    Barry
>
> >
> > Fande,
> >
> > On Sun, Jun 26, 2016 at 4:31 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
> >
> >   Fande,
> >
> >      How does PCGASMSetSubdomains() know which subdomain from an index
> set on one process is connected to an index set on another processor? Are
> you assuming the index sets on each process are somehow ordered to make
> sure that the right parts on each process connect to form the entire
> domain? What if someone passed them in a different order on some process,
> is there anyway to error check that?
> >
> >    Thanks
> >
> >      Barry
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20160626/a5d71504/attachment.html>


More information about the petsc-dev mailing list