[petsc-users] loosing preallocation information
Alexander Grayver
agrayver at gfz-potsdam.de
Mon Mar 7 08:04:24 CST 2011
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.
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
>> <mailto: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 <mailto:agrayver at gfz-potsdam.de>> wrote:
>> >>
>> >> Hello,
>> >...
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20110307/690a8bc5/attachment.htm>
More information about the petsc-users
mailing list