[petsc-users] Column #j is wrong in parallel from message "Inserting a new nonzero (i, j) into matrix"

Eric Chamberland Eric.Chamberland at giref.ulaval.ca
Fri Oct 21 12:55:56 CDT 2016


Hi,

I am on a new issue with a message:
[1]PETSC ERROR: --------------------- Error Message 
--------------------------------------------------------------
[1]PETSC ERROR: Argument out of range
[1]PETSC ERROR: New nonzero at (374328,1227) caused a malloc
Use MatSetOption(A, MAT_NEW_NONZERO_ALLOCATION_ERR, PETSC_FALSE) to turn 
off this check
[1]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html 
for trouble shooting.
[1]PETSC ERROR: Petsc Release Version 3.7.2, Jun, 05, 2016
[1]PETSC ERROR: /pmi/ericc/projetm4/depots_prepush/BIB/bin/BIBMEF.opt on 
a arch-linux2-c-debug named lorien by eric Fri Oct 21 13:46:51 2016
[1]PETSC ERROR: Configure options 
--prefix=/opt/petsc-3.7.2_debug_matmatmult_mpi --with-mpi-compilers=1 
--with-make-np=12 --with-shared-libraries=1 
--with-mpi-dir=/opt/openmpi-1.10.2 --with-debugging=yes 
--with-mkl_pardiso=1 --with-mkl_pardiso-dir=/opt/intel/composerxe/mkl 
--download-ml=yes --download-mumps=yes --download-superlu=yes 
--download-superlu_dist=yes --download-parmetis=yes 
--download-ptscotch=yes --download-metis=yes --download-suitesparse=yes 
--download-hypre=yes --with-scalapack=1 
--with-scalapack-include=/opt/intel/composerxe/mkl/include 
--with-scalapack-lib="-L/opt/intel/composerxe/mkl/lib/intel64 
-lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64" 
--with-blas-lapack-dir=/opt/intel/composerxe/mkl/lib/intel64
[1]PETSC ERROR: #1 MatSetValues_MPIAIJ() line 616 in 
/groshd/ericc/petsc-3.7.2-debug/src/mat/impls/aij/mpi/mpiaij.c
[1]PETSC ERROR: #2 MatAssemblyEnd_MPIAIJ() line 724 in 
/groshd/ericc/petsc-3.7.2-debug/src/mat/impls/aij/mpi/mpiaij.c
[1]PETSC ERROR: #3 MatAssemblyEnd() line 5194 in 
/groshd/ericc/petsc-3.7.2-debug/src/mat/interface/matrix.c

I am starting to debug, but I just want to be sure that the indices 
374328 and 1227 are both global indices...

re-reading the thread makes me think yes... but I am not 100% sure...

Thanks,

Eric


On 26/03/15 09:52 PM, Barry Smith wrote:
>
>   Eric,
>
>   I have now updated all the standard MPI matrix types AIJ, BAIJ, SBAIJ to print the correct global indices in the error messages when a new nonzero location is generated thus making debugging this issue easier. In the branches barry/fix-inserting-new-nonzero-column-location, next and the next release.
>
>    Thanks for pushing on this. The previous code was too "developer centric" and not enough "user centric" enough.
>
>    Barry
>
>> On Mar 25, 2015, at 1:03 PM, Eric Chamberland <Eric.Chamberland at giref.ulaval.ca> wrote:
>>
>> Hi,
>>
>> while looking for where in the world do I insert the (135,9) entry in my matrix, I have discovered that the column # shown is wrong in parallel!
>>
>> I am using PETsc 3.5.3.
>>
>> The full error message is:
>>
>> [0]PETSC ERROR: MatSetValues_MPIAIJ() line 564 in /home/mefpp_ericc/petsc-3.5.3/src/mat/impls/aij/mpi/mpiaij.c Inserting a new nonzero (135, 9) into matrix
>>
>> This line code is a call to a #defined macro:
>>
>> MatSetValues_SeqAIJ_B_Private(row,col,value,addv);
>>
>> where the "col" parameter is not equal to "in[j]"!!!
>>
>> in gdb, printing "in[j]" gave me:
>>
>> print in[j]
>> $6 = 537
>>
>> while "col" is:
>>
>> print col
>> $7 = 9
>>
>> So, I expected to have a message telling me that (135,537) and not (135,9) is a new entry matrix!!!
>>
>> Would it be a big work to fix this so that the col # displayed is correct?
>>
>> Thanks!
>>
>> Eric


More information about the petsc-users mailing list