Warning, /tools/TAP_support/ADFirstAidKit/README.md is written in an unsupported language. File is not indexed.
view on githubraw file Latest commit b4daa243 on 2023-05-28 03:53:22 UTC
b4daa24319 Shre*0001 Contents of the ADFirstAidKit
0002 =============================
0003
0004 ## adStack.c && adStack.h
0005 Mechanism for the main stack used by codes produced by Tapenade in reverse mode.
0006 Use these files regardless of the language of the reverse-differentiated code.
0007 For OpenMP compatibility, compile with option -fopenmp.
0008
0009 ## adBinomial.c && adBinomial.h
0010 Primitives for Tapenade adjoint with binomial checkpoiting (cf Griewank-Walther
0011 "revolve" method). Triggered by Tapenade directive $AD BINOMIAL-CKP.
0012
0013 ## (adContext.c || adContextMPI.c) && adContext.h
0014 Primitives used by Tapenade-differentiated code with automated validation.
0015 Triggered by tapenade command-line option -context.
0016 Use adContextMPI.c instead of adContext.c on MPI code.
0017
0018 ## adContextCPX.c && adContextCPX.h
0019 Same as adContext, but to validate code differentiated with the command-line
0020 option -complexstep, which is an attempt to automate differentiation
0021 via the complex-step method.
0022
0023 ## (adDebug.c || adDebugMPI.c) && adDebug.h
0024 Primitives used by Tapenade-differentiated code with automated debugging.
0025 Triggered by tapenade command-line option -context combined either with
0026 -debugTGT or with -debugADJ.
0027 Use adDebugMPI.c instead of adDebug.c on MPI code.
0028
0029 ## adComplex.h
0030 Utility for adStack, adContext, adDebug
0031
0032 ## admm.c && admm.h (might be integrated later into adBuffer)
0033 The "ADMM" primitives, which manage push/pop of pointers when the pointer's
0034 destination lies in memory chunks that have been deallocated and reallocated.
0035
0036 ## admm_tapenade_interface.f90
0037 A Fortran90 module that must be USE'd by Tapenade-generated adjoint code,
0038 if these codes need push/pop of pointers or use ADMM primitives.
0039
0040 ## adProfile.c && adProfile.h (Currently broken, sorry)
0041 Primitives used by Tapenade adjoint to measure the cost/benefit of checkpointing,
0042 to find parts of the code that should or shouldn't be checkpointed.
0043
0044 ## fortranSupport.F && ampiSupport.c
0045 Files needed by AMPI, for Tapenade adjoint code of MPI programs.
0046
0047 ## ampi
0048 Directory containing the include files needed by code using the "adjoinable mpi" library.
0049 This is primarily intended for some nonRegression tests. This is not the ampi install.
0050
0051 ## PUSHPOPGeneralLib && PUSHPOPDiff.f
0052 Useful for repeated differentiation forward-on-reverse. Specification of the
0053 activity behavior of push/pop primitives + implementation of the forward
0054 derivatives of these primitives.
0055
0056 ## testMemSizef.f && testMemSizec.c
0057 Short standalone code that tries to measure the size of primitive types in bytes.
0058
0059 ## testpushpop.sh && testpushpop.f90
0060 Short standalone code to test push/pop primitives of adStack.c
0061
0062 ## validityTest.f (Poorly tested, sorry)
0063 Primitives used by Tapenade tangent code to estimate how close the execution
0064 comes to non-differentiable behavior (e.g. tests).
0065 Triggered by tapenade command-line option -directValid.
0066
0067 ## OLDadBuffer.c && OLDadBuffer.h && OLDadBuffer.f && OLDadStack.c && OLDadStack.h
0068 Old version of the stack mechanism used by reverse AD codes. The new adStack.c && adStack.h do not need adBuffer any more.
0069 With gfortran 10.2.1, use -fallow-argument-mismatch option to compile OLDadBuffer.f.
0070
0071 Notice that, in order to run some nonRegression tests, you may have to place manually into this ADFirstAidKit directory two symbolic links: one named "mpich" pointing to the include directory of your mpich insall, and another one named "openmpi" pointing to the include directory of your openmpi install.