TAF
Summary:
Transformation of Algorithms in Fortran (TAF) is a source-to-source AD-tool for Fortran-95 programs. TAF supports forward and reverse mode of AD and Automatic Sparsity Detection (ASD) for detection of the sparsity structure of Jacobians.
URL: http://fastopt.de/products/taf/taf.shtml
Developers:
- Ralf Giering,
FastOpt
Mode: |
Forward Reverse |
Method: |
Source transformation |
Supported Language: |
Fortran 77/90 Fortran2003 Fortran2008 Fortran2018 Fortran77 Fortran95 |
Reference:
Ralf Giering, Thomas Kaminski
Recipes for Adjoint Code Construction
Article in ACM Transactions on Mathematical Software, 1998
Ralf Giering, Thomas Kaminski, T. Slawig
Generating Efficient Derivative Code with TAF: Adjoint and Tangent Linear Euler Flow Around an Airfoil
Article in Future Generation Computer Systems, 2005
Recipes for Adjoint Code Construction
Article in ACM Transactions on Mathematical Software, 1998
Ralf Giering, Thomas Kaminski, T. Slawig
Generating Efficient Derivative Code with TAF: Adjoint and Tangent Linear Euler Flow Around an Airfoil
Article in Future Generation Computer Systems, 2005
Features:
- Fortran-95 Support:
- TAF supports the full Fortran-95 standard.
- Fortran-2003 Support:
- TAF supports allmost all of the Fortran-2003 standard.
- Fortran-2008 Support:
- TAF supports most of the Fortran-2008 standard.
- Fortran-2018 Support:
- TAF supports most of the Fortran-2018 standard.
- MPI Support:
- TAF supports collective communications, blocking, and non-blocking point-to-point communications
- OpenMP Support:
- TAF supports most of OpenMP-3.1
- Analyses:
- Performance:
- Directives:
TAF normalizes the code and applies a control flow analysis. TAF applies
an intraprocedural data dependence and an interprocedural data flow analysis.
Given the independent and dependent variables of the specified top-level
routine, TAF determines all active routines and variables and produces
derivative code only for those.
TAF predicts the computational costs of code fragments for an (sub)optimal
decision between recomputation and storing of intermediate results in reverse
mode.
TAF accepts several kinds of directives. Using the reverse mode storing
of variables is controlled by directives.
Multi level checkpointing can be implemented by splitting a loop and
inserting directives.
Black box (library) routines are handled using flow information given
by directives.
Supported Platforms:
- Application Server
Licensing: license
Entries in our publication database that actually use TAF in the numerical experiments: 66
The following diagram shows these entries versus the year of the publication.
|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|||
'96 | '98 | '01 | '02 | '03 | '04 | '05 | '06 | '07 | '08 | '09 | '11 | '16 | ||||
Year |
Related Research Groups: