|
[1]
|
C. H. Bischof, H. M. Bücker, B. Lang, A. Rasch, and E. Slusanschi.
Efficient and accurate derivatives for a software process chain in
airfoil shape optimization.
Future Gen. Comput. Syst., 21(8):1333--1344, October 2005.
[ DOI ]
When using a Newton-based numerical algorithm to
optimize the shape of an airfoil with respect to
certain design parameters, a crucial ingredient is the
derivative of the objective function with respect to
the design parameters. In large-scale aerodynamics,
this objective function is an output of a
computational fluid dynamics program written in a
high-level programming language such as Fortran or
C.Numerical differentiation is commonly used to
approximate derivatives but is subject to truncation
and subtractive cancellation errors. For a particular
two-dimensional airfoil, we instead apply automatic
differentiation to compute accurate derivatives of the
lift and drag coefficients with respect to geometric
shape parameters. In automatic differentiation, a
given program is transformed into another program
capable of computing the original function together
with its derivatives. In the problem at hand, the
objective function consists of a sequence of programs:
a MATLAB program followed by two Fortran 77 programs.
It is shown how automatic differentiation is applied
to a sequence of programs while keeping the
computational complexity within reasonable limits. The
derivatives computed by automatic differentiation are
compared with approximations based on divided
differences.
|
|
[2]
|
Christian H. Bischof, Bruno Lang, and Andre Vehreschild.
Automatic differentiation for MATLAB programs.
Proc. Appl. Math. Mech., 2(1):50--53, March 2003.
Proc. GAMM-Jahrestagung, March 25--28, 2002, Augsburg, Germany.
[ DOI ]
Derivative information is required in numerous
applications, including sensitivity analysis and
numerical optimization. For simple functions, symbolic
differentiation---done either manually or with a
computer algebra system---can provide the derivatives,
whereas divided differences (DD) have been used
traditionally for functions defined by (potentially
very complex) computer programs, even if only
approximate values can be obtained this way. An
alternative approach for such functions is automatic
differentiation (AD), yielding exact derivatives at
often lower cost than DD, and without restrictions on
the program complexity. In this paper we compare the
functionality and describe the use of ADMIT/ADMAT and
ADiMat. These two AD tools provide derivatives for
programs written in the MATLAB language, which is
widely used for prototype and production software in
scientific and engineering applications. While
ADMIT/ADMAT implements a pure operator overloading
approach of AD, ADiMat also employes source
transformation techniques.
|
|
[3]
|
Christian H. Bischof, H. Martin Bücker, Bruno Lang, and Arno Rasch.
Automated gradient calculation.
In Josef Ballmann, editor, Flow Modulation and Fluid-Structure
Interaction at Airplane Wings, number 84 in Notes on Numerical Fluid
Mechanics and Multidisciplinary Design, pages 205--224. Springer, Berlin,
2003.
[ DOI ]
Automatic differentiation is a powerful technique
for evaluating derivatives of functions given in the
form of a high-level programming language such as
Fortran, C, or C++. The program is treated as a
sequence of elementary statements to which the chain
rule of differential calculus is applied mechanically.
A key feature of this technique is its ability to
generate accurate derivatives rather than
approximations obtained from numerical differentiation
like divided differences. We survey automatic
differentiation and report on preliminary results that
have been obtained applying the automatic
differentiation tool ADIFOR to a large-scale
computational fluid dynamics solver, TFS, developed at
Aerodynamisches Institut, Aachen University of
Technology. This solver comprises approximately 24,000
lines of Fortran 77 and is able to resolve steady and
unsteady laminar and turbulent flows in two and three
dimensions.
|
|
[4]
|
H. Martin Bücker, Bruno Lang, Arno Rasch, and Christian H. Bischof.
Automatic parallelism in differentiation of Fourier transforms.
In Chin-Cheng Hung, Henry Hexmoor, et al., editors, Proc. 2003
ACM Symposium on Applied Computing (SAC 2003), March 9--12, 2003, Melbourne,
FL, pages 148--152, New York, NY, 2003. Assoc. Comput. Mach.
[ DOI ]
For functions given in the form of a computer program,
automatic differentiation is an efficient technique to
accurately evaluate the derivatives of that function.
Starting from a given computer program, automatic
differentiation generates another program for the
evaluation of the original function and its
derivatives in a fully mechanical way. While the
efficiency of this black box approach is already high
as compared to numerical differentiation based on
divided differences, automatic differentiation can be
applied even more efficiently by taking into account
high-level knowledge about the given computer program.
We show that, in the case where the function involves
a Fourier transform, the degree of parallelism in the
program generated by automatic differentiation can be
increased leading to a rich set of automatic
parallelization strategies that are not available when
employing a black box automatic parallelization
approach. Experiments of the new automatic
parallelization approach are reported on a
SunFire 6800 server using up to 20 processors.
|
|
[5]
|
C. H. Bischof, H. M. Bücker, B. Lang, A. Rasch, and A. Vehreschild.
Combining source transformation and operator overloading techniques
to compute derivatives for MATLAB programs.
In Proc. 2nd IEEE Intl. Workshop on Source Code Analysis and
Manipulation (SCAM 2002), October 1, 2002, Montreal, Canada, pages 65--72.
IEEE Computer Society, November 2002.
[ DOI ]
Derivatives of mathematical functions play a key role
in various areas of numerical and technical computing.
Many of these computations are done in MATLAB, a
popular environment for technical computing providing
engineers and scientists with capabilities for
mathematical computing, analysis, visualization, and
algorithmic development. For functions written in the
MATLAB language, a novel software tool is proposed to
automatically transform a given MATLAB program into
another MATLAB program capable of computing not only
the original function but also user-specified
derivatives of that function. That is, a program
transformation known as automatic differentiation is
performed to change the semantics of the program in a
fashion based on the chain rule of differential
calculus. The crucial ingredient of the tool is a
combination of source-to-source transformation and
operator overloading. The overall design of the tool
is described and numerical experiments are reported
demonstrating the efficiency of the resulting code for
a sample problem.
|
|
[6]
|
H. Martin Bücker, Bruno Lang, Arno Rasch, and Christian H. Bischof.
Computation of sensitivity information for aircraft design by
automatic differentiation.
In Peter M. A. Sloot, C. J. Kenneth Tan, Jack J. Dongarra, and
Alfons G. Hoekstra, editors, Computational Science -- ICCS 2002
International Conference, April 21--24, 2002, Amsterdam, The Netherlands,
Proceedings, Part II, number 2330 in LNCS, pages 1069--1076, Berlin, 2002.
Springer-Verlag.
[ DOI ]
Given a numerical simulation of the near wake of an
airfoil, automatic differentiation is used to
accurately compute the sensitivities of the Mach
number with respect to the angle of attack. Such
sensitivity information is crucial when integrating a
pure simulation code into an optimization framework
involving a gradient-based optimization technique. In
this note, the ADIFOR system implementing the
technology of automatic differentiation for functions
written in Fortran 77 is used to mechanically
transform a given flow solver called TFS into a new
program capable of computing the original simulation
and the desired derivatives in a simultaneous fashion.
Numerical experiments of derivatives obtained from
automatic differentiation and finite differences
approximations are reported.
|
|
[7]
|
H. Martin Bücker, Bruno Lang, Dieter an Mey, Arno Rasch, and Christian H.
Bischof.
Explicit loop scheduling in OpenMP for parallel automatic
differentiation.
In Jalal N. Almhana and C. Bhavsar Virendrakumar, editors,
Proc. 16th Annual International Symposium on High Performance Computing
Systems and Applications (HPCS 2002), Moncton, Canada, June 16--19, 2002,
pages 121--126, Los Alamitos, CA, 2002. IEEE Computer Society.
[ DOI ]
Derivatives of almost arbitrary functions can be
evaluated efficiently by automatic differentiation
whenever the functions are given in the form of
computer programs in a high-level programming language
such as Fortran, C, or C++. In contrast to numerical
differentiation, where derivatives are only
approximated, automatic differentiation generates
derivatives that are accurate up to machine precision.
Sophisticated software tools implementing the
technology of automatic differentiation are capable of
automatically generating code for the product of the
Jacobian matrix and a so-called seed matrix. It is
shown how these tools can benefit from concepts of
shared memory programming to parallelize, in a
completely mechanical fashion, the gradient operations
associated with each statement of the given code. The
feasibility of our approach is demonstrated by
numerical experiments. They were performed with a code
that was generated automatically by the Adifor system
and augmented with OpenMP directives.
|
|
[8]
|
H. Martin Bücker, Bruno Lang, Arno Rasch, and Christian H. Bischof.
Sensitivity analysis of an airfoil simulation using automatic
differentiation.
In M. H. Hamza, editor, Proc. International IASTED Conference
on Modelling, Identification, and Control (MIC 2002), Innsbruck, Austria,
February 18--21, 2002, pages 73--76, Anaheim, CA, 2002. ACTA Press.
Derivatives are not only useful in sensitivity
analysis but play a vital role in various areas of
computational science including parameter optimization
of computer models. Among the various methods for
obtaining derivatives, automatic differentiation (AD)
combines freedom from approximation errors, high
performance, and the ability to handle arbitrarily
complex codes arising from large-scale scientific
investigations. In this note, we show how AD
technology can aid in the sensitivity analysis of a
computer model of an aircraft. To this end, the
software tool ADIFOR, implementing the AD technology
for functions written in Fortran 77, was applied to a
large-scale computational fluid dynamics solver, TFS,
developed at Aerodynamisches Institut, Aachen
University of Technology. This solver comprises
approximately 24,000 lines of Fortran 77 and is able
to resolve steady and unsteady laminar and turbulent
flows in two and three dimensions.
|
|
[9]
|
H. Martin Bücker, Bruno Lang, Dieter an Mey, and Christian H. Bischof.
Bringing together automatic differentiation and OpenMP.
In M. Furnari and E. Gallopoulos, editors, Proceedings
International Conference on Supercomputing, ICS 2001, Sorrento, Italy, June
17--21, 2001, pages 246--251, New York, NY, 2001. ACM Press.
[ DOI ]
Derivatives of almost arbitrary functions can be
evaluated efficiently by automatic differentiation
whenever the functions are given in the form of
computer programs in a high-level programming language
such as Fortran, C, or C++. Furthermore, in contrast
to numerical differentiation where derivatives are
approximated, automatic differentiation generates
derivatives that are accurate up to machine precision.
The so-called forward mode of automatic
differentiation computes derivatives by carrying
forward a gradient associated with each intermediate
variable simultaneously with the evaluation of the
function itself. It is shown how software tools
implementing the technology of automatic
differentiation can benefit from simple concepts of
shared memory programming to parallelize the gradient
operations. The feasibility of our approach is
demonstrated by numerical experiments. They were
performed with a code that was generated automatically
by the Adifor system and augmented with OpenMP
directives.
|