[petsc-dev] Broken snes_tutorials-ex20_2d_p1_gmg_vcycle_cr and CRSetup_Private()

Pierre Jolivet pierre at joliv.et
Wed Aug 4 10:51:40 CDT 2021


I’ve flagged the test as broken on top of my feature branch (https://gitlab.com/petsc/petsc/-/commit/b02fd907789ed54b7deef6e9395f48df00996858?merge_request_iid=4182 <https://gitlab.com/petsc/petsc/-/commit/b02fd907789ed54b7deef6e9395f48df00996858?merge_request_iid=4182>).
Satish will have to make the executive decision of merging this or not, as the pipeline is now successful.

Thanks,
Pierre

> On 4 Aug 2021, at 2:50 PM, Stefano Zampini <stefano.zampini at gmail.com> wrote:
> 
> Matt,
> 
> I’m fine flagging the test as broken for now
> Actually, this test has always been broken….
> As Pierre said, if we make these matrices inherit from MatShell, we get shift and scale for free
> 
> 
>> On Aug 4, 2021, at 10:13 AM, Pierre Jolivet <pierre at joliv.et <mailto:pierre at joliv.et>> wrote:
>> 
>> Hello,
>> Up until very recently, MatGetOwnershipRange() was returning only zeros for any MATNORMAL (thanks Stefano for the help fixing that https://gitlab.com/petsc/petsc/-/merge_requests/4182#note_640848528 <https://gitlab.com/petsc/petsc/-/merge_requests/4182#note_640848528>).
>> In CRSetup_Private(), there is a call to MatCreateNormal() followed by MatShift().
>> Since ops->shift = NULL for MATNORMAL, code goes into MatShift_Basic().
>> There, a for loop goes from “start” to “end”, but the values were previously only 0.
>> Now that MatGetOwnershipRange() has been fixed for MATNORMAL, the bounds are nonzero, and snes_tutorials-ex20_2d_p1_gmg_vcycle_cr fails because MATNORMAL has no ops->setvalues
>> What is the proper fix or how can I bypass the issue? Would it be OK to (temporarily) mark this test as broken?
>> Previous code was obviously not doing what was intended in theory, but yet I’m guessing numerically everything was OK?
>> I’m thinking https://gitlab.com/petsc/petsc/-/issues/972 <https://gitlab.com/petsc/petsc/-/issues/972> should do the trick, but this is somehow orthogonal to my developments, which are now blocked because of failing pipelines in snes_tutorials-ex20_2d_p1_gmg_vcycle_cr (https://gitlab.com/petsc/petsc/-/jobs/1475595231 <https://gitlab.com/petsc/petsc/-/jobs/1475595231>).
>> 
>> Thanks,
>> Pierre
>> 
>> $ make -f gmakefile test query='name' queryval="*snes_tutorials-ex20_2d_p1_gmg_vcycle_cr*"
>> Using MAKEFLAGS: queryval=*snes_tutorials-ex20_2d_p1_gmg_vcycle_cr* query=name
>>         TEST arch-darwin-c-debug-real/tests/counts/snes_tutorials-ex20_2d_p1_gmg_vcycle_cr.counts
>> not ok snes_tutorials-ex20_2d_p1_gmg_vcycle_cr # Error code: 56
>> #	[0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
>> #	[0]PETSC ERROR: No support for this operation for this object type
>> #	[0]PETSC ERROR: Mat type normal
>> #	[0]PETSC ERROR: See https://www.mcs.anl.gov/petsc/documentation/faq.html <https://www.mcs.anl.gov/petsc/documentation/faq.html> for trouble shooting.
>> #	[0]PETSC ERROR: Petsc Development GIT revision: v3.15.2-633-gdc9bbe6e6a  GIT Date: 2021-08-03 20:53:25 +0200
>> #	[0]PETSC ERROR: ../ex20 on a arch-darwin-c-debug-real named aardvark.local by jolivet Wed Aug  4 10:04:59 2021
>> #	[0]PETSC ERROR: Configure options --download-c2html --download-elemental --download-hpddm --download-hpddm-commit=origin/omp --download-htool --download-htool-commit=origin/main --download-hypre --download-metis --download-suitesparse --download-mmg --download-mumps --download-hwloc --download-p4est --download-parmetis --download-parmmg --download-ptscotch --download-slepc --download-slepc-commit=origin/main --download-slepc-configure-arguments="--download-arpack=https://github.com/prj-/arpack-ng/archive/b64dccb.tar.gz <https://github.com/prj-/arpack-ng/archive/b64dccb.tar.gz>" --download-tetgen --download-triangle --download-zlib --with-blaslapack-include=/opt/intel/oneapi/mkl/latest/include --with-blaslapack-lib="[/opt/intel/oneapi/compiler/latest/mac/compiler/lib/libiomp5.dylib,/opt/intel/oneapi/mkl/latest/lib/libmkl_intel_lp64.dylib,/opt/intel/oneapi/mkl/latest/lib/libmkl_intel_thread.dylib,/opt/intel/oneapi/mkl/latest/lib/libmkl_core.dylib]" --with-fortran-bindings=1 --with-mkl_cpardiso-include=/opt/intel/oneapi/mkl/latest/include --with-mkl_cpardiso=1 --with-mkl_pardiso-include=/opt/intel/oneapi/mkl/latest/include --with-mkl_pardiso=1 --with-opengl=1 --with-petsc4py --with-scalapack-include=/opt/intel/oneapi/mkl/latest/include --with-scalapack-lib="[/opt/intel/oneapi/mkl/latest/lib/libmkl_scalapack_lp64.dylib,/opt/intel/oneapi/mkl/latest/lib/libmkl_blacs_mpich_lp64.dylib]" --with-scalar-type=real --with-shared-libraries=1 CFLAGS="-Wall -g" CXXFLAGS="-Wall -g" FFLAGS="-Wall -ffree-line-length-512 -g" PETSC_ARCH=arch-darwin-c-debug-real
>> #	[0]PETSC ERROR: #1 MatSetValues() at /Users/jolivet/Documents/repositories/petsc/src/mat/interface/matrix.c:1376
>> #	[0]PETSC ERROR: #2 MatShift_Basic() at /Users/jolivet/Documents/repositories/petsc/src/mat/utils/gcreate.c:26
>> #	[0]PETSC ERROR: #3 MatShift() at /Users/jolivet/Documents/repositories/petsc/src/mat/utils/axpy.c:309
>> #	[0]PETSC ERROR: #4 CRSetup_Private() at /Users/jolivet/Documents/repositories/petsc/src/ksp/pc/impls/mg/mg.c:300
>> #	[0]PETSC ERROR: #5 PCSetUp_Shell() at /Users/jolivet/Documents/repositories/petsc/src/ksp/pc/impls/shell/shellpc.c:101
>> #	[0]PETSC ERROR: #6 PCSetUp() at /Users/jolivet/Documents/repositories/petsc/src/ksp/pc/interface/precon.c:1016
>> #	[0]PETSC ERROR: #7 PCApply() at /Users/jolivet/Documents/repositories/petsc/src/ksp/pc/interface/precon.c:441
>> #	[0]PETSC ERROR: #8 PCApply_Composite_Multiplicative() at /Users/jolivet/Documents/repositories/petsc/src/ksp/pc/impls/composite/composite.c:50
>> #	[0]PETSC ERROR: #9 PCApply() at /Users/jolivet/Documents/repositories/petsc/src/ksp/pc/interface/precon.c:445
>> #	[0]PETSC ERROR: #10 KSP_PCApply() at /Users/jolivet/repo/petsc/include/petsc/private/kspimpl.h:365
>> #	[0]PETSC ERROR: #11 KSPInitialResidual() at /Users/jolivet/Documents/repositories/petsc/src/ksp/ksp/interface/itres.c:65
>> #	[0]PETSC ERROR: #12 KSPSolve_GMRES() at /Users/jolivet/Documents/repositories/petsc/src/ksp/ksp/impls/gmres/gmres.c:246
>> #	[0]PETSC ERROR: #13 KSPSolve_Private() at /Users/jolivet/Documents/repositories/petsc/src/ksp/ksp/interface/itfunc.c:912
>> #	[0]PETSC ERROR: #14 KSPSolve() at /Users/jolivet/Documents/repositories/petsc/src/ksp/ksp/interface/itfunc.c:1084
>> #	[0]PETSC ERROR: #15 KSPSetUp_Chebyshev() at /Users/jolivet/Documents/repositories/petsc/src/ksp/ksp/impls/cheby/cheby.c:87
>> #	[0]PETSC ERROR: #16 KSPSetUp() at /Users/jolivet/Documents/repositories/petsc/src/ksp/ksp/interface/itfunc.c:365
>> #	[0]PETSC ERROR: #17 PCSetUp_MG() at /Users/jolivet/Documents/repositories/petsc/src/ksp/pc/impls/mg/mg.c:1247
>> #	[0]PETSC ERROR: #18 PCSetUp() at /Users/jolivet/Documents/repositories/petsc/src/ksp/pc/interface/precon.c:1016
>> #	[0]PETSC ERROR: #19 KSPSetUp() at /Users/jolivet/Documents/repositories/petsc/src/ksp/ksp/interface/itfunc.c:406
>> #	[0]PETSC ERROR: #20 KSPSolve_Private() at /Users/jolivet/Documents/repositories/petsc/src/ksp/ksp/interface/itfunc.c:850
>> #	[0]PETSC ERROR: #21 KSPSolve() at /Users/jolivet/Documents/repositories/petsc/src/ksp/ksp/interface/itfunc.c:1084
>> #	[0]PETSC ERROR: #22 SNESSolve_NEWTONLS() at /Users/jolivet/Documents/repositories/petsc/src/snes/impls/ls/ls.c:225
>> #	[0]PETSC ERROR: #23 SNESSolve() at /Users/jolivet/Documents/repositories/petsc/src/snes/interface/snes.c:4769
>> #	[0]PETSC ERROR: #24 main() at /Users/jolivet/Documents/repositories/petsc/src/snes/tutorials/ex20.c:175
>> #	[0]PETSC ERROR: PETSc Option Table entries:
>> #	[0]PETSC ERROR: -dm_plex_box_faces 2,2
>> #	[0]PETSC ERROR: -dm_refine_hierarchy 3
>> #	[0]PETSC ERROR: -ksp_rtol 5e-10
>> #	[0]PETSC ERROR: -mg_levels_cr_ksp_converged_rate
>> #	[0]PETSC ERROR: -mg_levels_cr_ksp_converged_rate_type error
>> #	[0]PETSC ERROR: -mg_levels_cr_ksp_max_it 5
>> #	[0]PETSC ERROR: -mg_levels_esteig_ksp_max_it 10
>> #	[0]PETSC ERROR: -mg_levels_esteig_ksp_type cg
>> #	[0]PETSC ERROR: -mg_levels_ksp_chebyshev_esteig 0,0.05,0,1.05
>> #	[0]PETSC ERROR: -mg_levels_ksp_max_it 5
>> #	[0]PETSC ERROR: -mg_levels_ksp_norm_type preconditioned
>> #	[0]PETSC ERROR: -pc_mg_adapt_cr
>> #	[0]PETSC ERROR: -pc_type mg
>> #	[0]PETSC ERROR: -potential_petscspace_degree 1
>> #	[0]PETSC ERROR: ----------------End of Error Message -------send entire error message to petsc-maint at mcs.anl.gov <mailto:petsc-maint at mcs.anl.gov>----------
>> #	Abort(56) on node 0 (rank 0 in comm 0): application called MPI_Abort(MPI_COMM_WORLD, 56) - process 0
>>  ok snes_tutorials-ex20_2d_p1_gmg_vcycle_cr # SKIP Command failed so no diff
>> 
>> 
>> # FAILED snes_tutorials-ex20_2d_p1_gmg_vcycle_cr
>> #
>> # To rerun failed tests:
>> #     /usr/bin/make -f gmakefile test test-fail=1
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20210804/d0c99947/attachment.html>


More information about the petsc-dev mailing list