[petsc-dev] Question about PCGASMSetSubdomains()
Barry Smith
bsmith at mcs.anl.gov
Sun Jun 26 19:23:51 CDT 2016
> On Jun 26, 2016, at 6:41 PM, Fande Kong <fdkong.jd at gmail.com> wrote:
>
> 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.
This is a very special case. Should this case be a different PC or a special case of PCGASM? Since you already have the code for much more complex configurations in GASM it seems a pity to throw away all that code?
Barry
>
> 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
> >
> >
>
>
More information about the petsc-dev
mailing list