[petsc-dev] AD support in PETSc?

Barry Smith bsmith at mcs.anl.gov
Sun Sep 10 12:13:14 CDT 2017


> On Sep 10, 2017, at 6:15 AM, Stefano Zampini <stefano.zampini at gmail.com> wrote:
> 
> Should the references to ADIFOR listed below be removed?

  Yes

> It seems PETSc does no longer provide support for automatic differentiation. I never used AD support in PETSc, but I was considering adding some reverse mode support to compute the transpose of the Jacobian matrices in adjoint computations. May ask why was it removed?

   It sucked. Though AD seems a good idea, the AD community, for whatever reason has never been able to produce anything usable for libraries.

   Barry

> 
> 
> [szampini at localhost petsc]$ git grep -i adifor
> bin/adiforfix.py:# $Id: adiforfix.py,v 1.3 2001/08/24 16:32:18 bsmith Exp $
> bin/adiforfix.py:#      | adiforfix.py
> include/petsc/private/matimpl.h:  PetscErrorCode (*setvaluesadifor)(Mat,PetscInt,void*);
> include/petscmat.h:               MATOP_SET_VALUES_ADIFOR=74,
> lib/petsc/conf/test:testexamples_ADIFOR: ${TESTEXAMPLES_ADIFOR}
> lib/petsc/conf/test:    -@ if test ${PRINT_PROGRESS}foo = debugtestfoo -a -n "${TESTEXAMPLES_ADIFOR}"; then printf "Running examples in `pwd`:\n ${TESTEXAMPLES_ADIFOR}\n"; fi
> lib/petsc/conf/test:buildexamples_ADIFOR:
> lib/petsc/conf/test:    -@${OMAKE} testexamples_ADIFOR TESTEXAMPLES_ADIFOR=`echo ${TESTEXAMPLES_ADIFOR} | sed s/runex[0-9]*[a-z0-9_]*//g`
> src/docs/tao_tex/manual/mathprog.bib:@TechReport{bischof.carle.ea:adifor,
> src/docs/tao_tex/manual/mathprog.bib:  title =        "{ADIFOR} 2.0 User's Guide",
> src/docs/tex/petscapp.bib:  title = "Using {ADIFOR} and {ADIC} to Provide a {J}acobian for the {SNES} Component of {PETSc}",
> src/mat/f90-mod/petscmat.h:      PetscEnum MATOP_SET_VALUES_ADIFOR
> src/mat/f90-mod/petscmat.h:      parameter(MATOP_SET_VALUES_ADIFOR=74)
> src/snes/examples/tutorials/makefile:   -@${MPIEXEC} -n 2 ./ex5f -adifor_jacobian -snes_monitor_short -ksp_gmres_cgs_refinement_type refine_always > ex5f_4.tmp 2>&1;\
> src/snes/examples/tutorials/makefile:   -@${MPIEXEC} -n 2 ./ex5f -adiformf_jacobian  -snes_monitor_short -ksp_gmres_cgs_refinement_type refine_always > ex5f_5.tmp 2>&1;\
> src/snes/examples/tutorials/makefile:TESTEXAMPLES_ADIFOR               = ex5f.PETSc runex5f_2 ex5f.rm
> 
> 
> -- 
> Stefano



More information about the petsc-dev mailing list