[petsc-users] Partitioning and AO problem

Jed Brown jedbrown at mcs.anl.gov
Tue Mar 26 08:59:06 CDT 2013


"Miguel A. Fernández" <miguel.fernandez at inria.fr> writes:

> Thanks for your quick reply.
>
>>> I'm using Petsc interface to ParMetis, as detailed in section 3.5 of the user's manual.
>>> 
>>> I have a problem with the creation of the AO mapps using the sentence 
>>> 
>>> AOCreateBasicIS(isg,PETSC NULL,&ao);
>> 
>> This line in the user's manual is incorrect. See Section 2.3.1 for a
>> proper explanation.

Actually, it's not really incorrect, just too easy to misinterpret.

> Yes, I agree, and this explains why the ApplicationToPetsc and PetscToApplication maps are inverted. 
> The problem is that you can neither call AOCreateBasicIS(PETSC_NULL,isg,&ao);
> since it seems that PETSC_NULL is only allowed in the second argument.
>
>> http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/AO/AOCreateBasic.html
>> 
>> It's not clear from your description above whether you have an
>> "application ordering" or just a local to global map.
>
> I have an application ordering and a petsc ordering, both global, in the spirit of Section 2.3.1. 
> Here, the application ordering is the natural ordering (0, 1, 2, … ), resulting from a simple distribution 
> of the nodes across processors, before partition with ParMetis.

Okay, you can specify index sets for both sides and keep the same
meaning you have now, but if you call

  AOCreateBasicIS(isg,NULL,&ao);

then the new ordering 'isg' is the "application ordering". This is
consistent with normal usage where "PETSc ordering" is the way data is
currently distributed and the "application ordering" is the ordering
that will be used for some other purpose.

https://bitbucket.org/petsc/petsc/commits/2609aec54a581b5b53a7f4681bee8e97b5c70594


More information about the petsc-users mailing list