[petsc-dev] petsc-dev: ASM with sbaij matrix and block size=1 broken?

Brad Aagaard baagaard at usgs.gov
Sat Nov 5 12:13:46 CDT 2011


Matt and Jed,

The error is in our inner solve (associated with computing the 
adjustment to the solution based on the friction criterion) for cases 
where not all processors have points on the fault. On processors without 
points on the fault the block size is -1 and the local size is 0. For 
processors with points on the fault, the block size is 3.

I tried altering DMMeshCreateMatrix so that it uses a block size of 1 if 
bs==-1, but I still get the error. Does the block size need to be 
consistent across all processors, even those a local size of 0? 
Alternatively, is the local size of 0 causing problems?

Matt- You can reproduce this problem using the pylith-stable branch:
cd tests/3d/cyclicfriction
pylith --nodes=3

Brad


On 11/5/11 5:26 AM, Matthew Knepley wrote:
> On Sat, Nov 5, 2011 at 5:20 AM, Brad Aagaard <baagaard at usgs.gov
> <mailto:baagaard at usgs.gov>> wrote:
>
>     Jed,
>
>     I assume you mean src/ksp/ksp/examples/__tutorials/ex2
>     I have not yet been able to duplicate the error with this example.
>     Do you know of any other test cases that might be appropriate?
>
>     My PyLith simulation with -malloc and -malloc_debug flags chokes on
>     line 933 of src/mat/impls/baij/mpi/__baijjob.c with a EXEC_BAD_ACCESS.
>
>
>     933               for (l=0; l<nzA; l++)   cols[imark+l] = cstart +
>     cworkA[l];
>
>     When the memory error happens at this line, the debugger shows
>     l = 1400100
>     imark = 0
>     cstart = 0
>     cworkA[l] = 0
>     cols[imark+l] = -17958193
>
>     The address of the bad memory access matches the address of
>     cols[imark+l].
>
>
> Brad, can you check C->rmap->bs when this happens? Since this is the
> only thing that changes, I am guessing that
> it might be 0, and then you can get the wrong 'proc' which cascades. Can
> I run this here?
>
>    Thanks,
>
>        Matt
>
>     Brad
>
>
>
>     On 11/4/11 8:39 PM, Jed Brown wrote:
>
>         On Fri, Nov 4, 2011 at 21:30, Brad Aagaard <baagaard at usgs.gov
>         <mailto:baagaard at usgs.gov>
>         <mailto:baagaard at usgs.gov <mailto:baagaard at usgs.gov>>> wrote:
>
>             Barry,
>
>             Sorry for the hg goof. Here is the changeset that I think is
>         related
>             to the problem.
>
>         http://petsc.cs.iit.edu/petsc/____petsc-dev/rev/7782710e3f96
>         <http://petsc.cs.iit.edu/petsc/__petsc-dev/rev/7782710e3f96>
>
>         <http://petsc.cs.iit.edu/__petsc/petsc-dev/rev/__7782710e3f96
>         <http://petsc.cs.iit.edu/petsc/petsc-dev/rev/7782710e3f96>>
>
>
>         If bs=1, then this doesn't change anything. As far as I know, it
>         is not
>         possible to create an SBAIJ(1) with map->bs != 1. Can you find a
>         way for
>         me to reproduce this? I see no problem with this, for example:
>
>         mpiexec -n 4 ./ex2 -mat_type sbaij -pc_type asm
>
>
>
>
>
> --
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which
> their experiments lead.
> -- Norbert Wiener




More information about the petsc-dev mailing list