[petsc-users] Petsc 3.19.2 to 3.18.0 error possibility.

Barry Smith bsmith at petsc.dev
Sat Jun 24 09:29:51 CDT 2023


    Search through all your code looking for calls to VecGetArray()/VecRestoreArray(). For all uses where you only need to read from the array, replace
the calls with VecGetArrayRead()/VecRestoreArrayRead().  And add the const modifier to the array declaration.



> On Jun 24, 2023, at 5:32 AM, Paweł Stebliński <psteb at bobolin.com.pl> wrote:
> 
> Welcome
> 
> If library nr 3.17.5 is compiled  --with-debuging=yes there apears an error. This exception is not thrown, and all system seems to work well when one compiles --with-debugging=no.
> 
> ------ Error Message --------------------------------------------------------------
> [79]PETSC ERROR: Object is in wrong state
> [79]PETSC ERROR:  Vec is already locked for read-only or read/write access, argument # 1
> [79]PETSC ERROR: See https://petsc.org/release/faq/ for trouble shooting.
> [79]PETSC ERROR: Petsc Release Version 3.17.5, Sep 30, 2022 
> [79]PETSC ERROR: /home/psteb/PRACA/KODY/SYMETRYLLBINTERTWOMODELS_NEW3.9/src/magpar.exe on a PETSc-config-magpar named magmain-1 by root Sat Jun 24 11:18:46 2023
> [79]PETSC ERROR: Configure options --with-precision=double --download-fblaslapack=1 --with-avx512-kernels=1 --with-mpi-dir=/home/psteb/PRACA/LIB_NEW3.9/../LIB_NEW/mpi --with-x=0 --with-clanguage=C++ --with-debugging=yes PETSC_ARCH=PETSc-config-magpar
> [79]PETSC ERROR: #1 VecSetErrorIfLocked() at /home/psteb/PRACA/LIB_NEW3.9/petsc-3.17.5.DEBUG/include/petscvec.h:618
> [79]PETSC ERROR: #2 VecGetArray() at /home/psteb/PRACA/LIB_NEW3.9/petsc-3.17.5.DEBUG/src/vec/vec/interface/rvector0e+00   0.000000e+00   0.000000e+00   0.000000e+00   0.000000e+00   0.000000e+00
>   9.930000e-04   0.000000e+00   3.110177e+00   0.000000e+00   2.353828e-45   0.000000e+00   0.000000e+00   0.000000e+00   3.000000e+02   0.000000e+00   0.000000e+00   0.000000e+00   0.000000e+00   0.000000e+00  -7.952733e-40   0.000000e+00   0.000000e+00   0.000000e+00   0.000000e+00   0.000000e+00   0.000000e+00
>   9.940000e-04   0.000000e+00   3.110177e+00   0.000000e+00   1.558555e-45   0.000000e+00   0.000000e+00   0.000000e+00   3.000000e+02   0.000000e+00   0.000000e+00   0.000000e+00   0.000000e+00   0.000000e+00  -5.271514e-40   0.000000e+00   0.000000e+00   0.000000e+00   0.000000e+00   0.000000e+00   0.000000e+00
>   9.950000e-04   0.000000e+00   3.110177e+00   0.000000e+00   1.031404e-45   0.000000e+00   0.000000e+00   0.000000e+00   3.000000e+02   0.000000e+00   0.000000e+00   0.000000e+00   0.000000e+00   0.000000e+00  -3.492309e-40   0.000000e+00   0.000000e+00   0.000000e+00   0.000000e+00   0.000000e+00   0.000000e+00]PETSC ERROR: #3 JAC3() at /home/psteb/PRACA/KODY/SYMETRYLLBINTERTWOMODELS_NEW3.9/src/llb/countmeq.c:161
> [0]PETSC ERROR: #4 TaoComputeJacobian() at /home/psteb/PRACA/LIB_NEW3.9/petsc-3.17.5.DEBUG/src/tao/interface/taosolver_hj.c:316
> [0]PETSC ERROR: #5 Tao_SSLS_FunctionGradient() at /home/psteb/PRACA/LIB_NEW3.9/petsc-3.17.5.DEBUG/src/tao/complementarity/impls/ssls/ssls.c:51
> [0]PETSC ERROR: #6 TaoLineSearchComputeObjectiveAndGradient() at /home/psteb/PRACA/LIB_NEW3.9/petsc-3.17.5.DEBUG/src/tao/linesearch/interface/taolinesearch.c:938
> [0]PETSC ERROR: #7 TaoSolve_SSILS() at /home/psteb/PRACA/LIB_NEW3.9/petsc-3.17.5.DEBUG/src/tao/complementarity/impls/ssls/ssils.c:54
> [0]PETSC ERROR: #8 TaoSolve() at /home/psteb/PRACA/LIB_NEW3.9/petsc-3.17.5.DEBUG/src/tao/interface/taosolver.c:136
> [0]PETSC ERROR: #9 createMeq() at /home/psteb/PRACA/KODY/SYMETRYLLBINTERTWOMODELS_NEW3.9/src/llb/countmeq.c:259
> [0]PETSC ERROR: #10 countMeq() at /home/psteb/PRACA/KODY/SYMETRYLLBINTERTWOMODELS_NEW3.9/src/llb/countmeq.c:296
> [0]PETSC ERRO[server]: PMIU_parse_keyvals: unexpected key delimiter at character 48 in cmd
> 
> 
> For petsc nr from 3.19.2 to 3.18.0 for options
> 
> --with-debugging=1 --with-cflags='-g -O0'   --with-cxxflags='-g -O0' --with-fflags='-g -O0'
> 
> or 
> 
> without these options, during execution
> 
> There is an error:
> 
> [6]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
> [6]PETSC ERROR: Object is in wrong state
> [6]PETSC ERROR: Not for unassembled vector, did you call VecAssemblyBegin()/VecAssemblyEnd()?
> [6]PETSC ERROR: WARNING! There are option(s) set that were not used! Could be the program crashed before they were used or a spelling mistake, etc!
> [6]PETSC ERROR:   Option left: name:-addcalorics value: 0 source: command line
> [6]PETSC ERROR:   Option left: name:-addhtomeq value: 0 source: command line
> [6]PETSC ERROR:   Option left: name:-addjtog value: 0 source: command line
> [6]PETSC ERROR:   Option left: name:-addterm value: 0 source: command line
> [6]PETSC ERROR:   Option left: name:-condinp_j value: 1e99 source: file
> [6]PETSC ERROR:   Option left: name:-condinp_t value: 1e-4 source: command line
> [6]PETSC ERROR:   Option left: name:-countG value: 0 source: command line
> [6]PETSC ERROR:   Option left: name:-countN value: 0 source: file
> [6]PETSC ERROR:   Option lef[8]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
> 
> 
> 
> 
> 
> 
> W dniu 23.06.2023 o 23:41, Barry Smith pisze:
>> 
>>   Could you send us the exact error output that occurs? Cut and paste the run command and the entire error message.
>> 
>>    Also send the configure options you used. Have you tried configuring the later PETSc versions with all optimization turned off; use --with-debugging=1 --with-cflags='-g -O0'   --with-cxxflags='-g -O0' --with-fflags='-g -O0'  Does the same error occur?
>> 
>>   Barry
>> 
>> 
>> 
>> 
>>> On Jun 23, 2023, at 5:30 PM, Paweł Stebliński via petsc-users <petsc-users at mcs.anl.gov> <mailto:petsc-users at mcs.anl.gov> wrote:
>>> 
>>> I am micromagnetic (MAGPAR) software developer. Old Magpar version has been using petsc 3.1-p8. I have decided to upgrade to petsc 3.19.2 with avx512 support. Unfortunately there appeared an error during software testing. Error appeares in ranning code after proper compiling and linking. The bug is in a code part which initializes matrix in petsc library versions: 3.19.2, 3.19.1, 3.19.0 and also from 3.18.5 to 3.18.0. If we use petsc version 3.17.5 the error doesn't appear. With this version (3.17.5) all is ok and simulation is running without any errors or throwing exceptions. My guess is linked to avx512 implementation which is good up to 3.17.5 version and buggy in upper mentioned versions with higher numbers. Avx512 is buggy according to tested SeqAij matrices.
>>> 
>>> The exception is not thrown if we comment code fragment below.
>>> 
>>> ierr = MatCreateSeqAIJ(
>>>     PETSC_COMM_SELF,
>>>     nvert,nvert,
>>>     0,ia,
>>>     &mat
>>>   );CHKERRQ(ierr);
>>>   ierr = MatSetFromOptions(mat);CHKERRQ(ierr);
>>> 
>>> ia - is number of nonzeros array which is obtained according parmetis partitioning. There were the same version of parmetis  (3.1.1) in the all considered cases.
>>> 
>> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20230624/3a0409a2/attachment-0001.html>


More information about the petsc-users mailing list