[petsc-users] loosing preallocation information

Matthew Knepley knepley at gmail.com
Mon Mar 7 08:35:28 CST 2011


On Mon, Mar 7, 2011 at 8:04 AM, Alexander Grayver
<agrayver at gfz-potsdam.de>wrote:

>  Jed, but why do I get in line 3003 in src/mat/impls/aij/seq/aij.c at all?
> As far as understand, if I don't pass nnz (NULL in C/C++ or PETSC_NULL in
> fortran) I have to avoid this loop in aij.c code.
>

This is the problem. Fortran does not allow this kind of flexible checking,
so there are different kinds of "NULL"s. You
need to pass PETSC_NULL_INTEGER for nnz.

   Matt


> I don't have much experience with valgrind. Could you provide me with right
> parameters to run my code under valgrind?
> Thanks a lot for your help.
>
>
> On 07.03.2011 14:59, Jed Brown wrote:
>
> Looks like a memory error. Best bet is to run in Valgrind.
>
> On Mar 7, 2011 5:52 AM, "Alexander Grayver" <agrayver at gfz-potsdam.de>
> wrote:
>
>  Hi Jed,
>
> It's getting even stranger.
>
> When I run this code under linux I've got error:
>
> [0]PETSC ERROR: --------------------- Error Message
> ------------------------------------
> [0]PETSC ERROR: Argument out of range!
> [0]PETSC ERROR: nnz cannot be greater than row length: local row 98 value
> 1455203639 rowlength 343!
> [0]PETSC ERROR:
> ------------------------------------------------------------------------
> [0]PETSC ERROR: Petsc Release Version 3.1.0, Patch 7, Mon Dec 20 14:26:37
> CST 2010
> [0]PETSC ERROR: See docs/changes/index.html for recent updates.
> [0]PETSC ERROR: See docs/faq.html for hints about trouble shooting.
> [0]PETSC ERROR: See docs/index.html for manual pages.
> [0]PETSC ERROR:
> ------------------------------------------------------------------------
> [0]PETSC ERROR: /home/mt/agrayver/mt-soft/multiem/INV3D/_tiger/em_model on
> a openmpi-i named glic by agrayver Mon Mar  7 14:49:43 2011
> [0]PETSC ERROR: Libraries linked from
> /panfs/panfs.gfz-hpcc.cluster/home/mt/agrayver/lib/petsc-3.1-p7/openmpi-intel-complex-debug/lib
> [0]PETSC ERROR: Configure run at Fri Mar  4 12:43:58 2011
> [0]PETSC ERROR: Configure options
> --with-petsc-arch=openmpi-intel-complex-debug
> --with-mpi-dir=/opt/mpi/intel/openmpi-1.4.2 --with-scalar-type=complex
> --with-blas-lapack-dir=/opt/intel/Compiler/11.1/072/mkl/lib/em64t
> --with-precision=double --with-x=0
> [0]PETSC ERROR:
> ------------------------------------------------------------------------
> [0]PETSC ERROR: MatSeqAIJSetPreallocation_SeqAIJ() line 3003 in
> src/mat/impls/aij/seq/aij.c
> [0]PETSC ERROR: MatCreateSeqAIJ() line 2906 in src/mat/impls/aij/seq/aij.c
>
>
> Then I traced it under debugger both on Windows and Linux and realized that
> it doesn't crash under Windows only by luck.
>
> The call stack if the folowing:
> [C] MatSeqAIJSetPreallocation_SeqAIJ, FP=7fffb4513880
> [C] MatCreateSeqAIJ,     FP=7fffb4513900
> [C] matcreateseqaij_,    FP=7fffb4513960
> [F90] MODELING_MOD`modeling, FP=7fffb4517740
>
> As far as I understand after debugging the problem is that nnz in
> MatSeqAIJSetPreallocation isn't 0 and I go through this code:
>    if (nnz) {
>      for (i=0; i<B->rmap->n; i++) {
>        if (nnz[i] < 0) SETERRQ2(PETSC_ERR_ARG_OUTOFRANGE,"nnz cannot be
> less than 0: local row %d value %d",i,nnz[i]);
>        if (nnz[i] > B->cmap->n) SETERRQ3(PETSC_ERR_ARG_OUTOFRANGE,"nnz
> cannot be greater than row length: local row %d value %d rowlength
> %d",i,nnz[i],B->cmap->n);
>      }
>    }
>
> But why is nnz nonzero? I passed PETSC_NULL. It seems like macros
> CHKFORTRANNULLINTEGER  in matcreateseqaij_ should set it to zero, but it
> doesn't.
>
>
> Thanks.
>
> On 06.03.2011 16:49, Jed Brown wrote:
>
>
> >
> > On Sun, Mar 6, 2011 at 07:39, Alexander Grayver <agrayver at gfz-potsdam.de>
> wrote:
> >>
> >> Hello,
> >...
>
>
>


-- 
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20110307/6903096c/attachment-0001.htm>


More information about the petsc-users mailing list