Sites and Affiliations
Research and Applications
Major Accomplishments
Frequently Asked Questions
Knowledge and Technology Transfer
Education and Outreach
Media Resources
Technical Reports and Publications
Parallel Computing Research - Our Quarterly Newsletter
Contact Information
CRPC Home Page

UniGuide Featured Site

New Tool Provides Accurate Derivatives for Multidisciplinary Applications

Source: NAS News, January 16, 1997
by Alan Carle

As part of the consortium headed by IBM Corp. under the High Performance Computing and Communications (HPCC) Program's Testbed-1 Cooperative Research Announcement (CRA), and in conjunction with the Multidisciplinary Design Optimization Branch at NASA Langley Research Center, Rice University has developed ADIFOR-MP, a new version of the ADIFOR Automatic Differentiation software for Fortran. ADIFOR is used to augment sophisticated computer simulation codes to compute derivatives of their outputs with respect to their inputs for use in advanced numerical optimization procedures.

Multidisciplinary design optimization (MDO) promises to revolutionize the design of complex vehicles, such as the High Speed Civil Transport, by applying numerical optimization to computer simulations of multiple interacting physical phenomena, including fluid flow, thermodynamics, and structures. Biannual AIAA symposiums on Multidisciplinary Analysis Optimization attest to the importance of MDO to the aerospace community. Derivatives, also known as "sensitivities," play a critical role in MDO. They allow researchers to understand how small changes to the inputs of one component of a complex system affect that component's output, or how small changes to the inputs of the whole system affect the system's outputs.

To obtain these derivatives, researchers have traditionally had two choices: use finite-difference approximations, or develop a program to compute the analytic derivatives. Finite differences are typically used in order to avoid the tedious, time-consuming, and error-prone programming required to construct code that computes the derivatives analytically. Unfortunately, it is usually very difficult to judge the accuracy of finite-difference approximations.

Fortunately, engineers can avoid these nuisances through the use of Automatic Differentiation (AD). An AD tool automatically applies the derivative chain rule to all of the expressions in a program to generate another program that computes -- in addition to its usual outputs -- the analytic derivatives of those outputs with respect to a set of input parameters. The ADIFOR 2.0 System, developed in a collaboration between Argonne National Laboratory and Rice University, implements AD for Fortran 77.

Automatic Differentiation & Parallelism

The computational expense of calculating derivatives of complex processes easily dominates the cost of programs that use derivatives. To make the use of such programs feasible, it is important to take advantage of all available parallelism. (The same conclusion was stated in "The Virtual Skeleton: Modeling Human Movements," NAS News, September -- October 1996, where derivatives are required for the solution of an optimal control problem.)

Researchers at Rice have investigated two techniques for applying parallelism to the computation of derivatives: (1) compute derivative "strips" in parallel, and (2) compute derivatives of explicitly parallel codes. These techniques are described in the next section.

Derivative Stripmining

AD, as implemented by ADIFOR, computes a gradient for each intermediate value computed by the original program. Each of these gradients is a vector whose elements are the derivatives of the intermediate value with respect to the input parameters of the program. If there are a sufficiently large number of inputs to the program, then it may be useful to divide up the calculation of these derivatives and assign them to multiple processors. For example: for six inputs, one processor can be used to compute all six derivatives; two processors can be simultaneously used to compute three derivatives each; or six processors can be used to compute one derivative each. In this manner, parallelism can be used to compute derivatives of sequential codes. Note, however, that this method redundantly recomputes the function value on each processor doing derivative work, so this technique fails to scale perfectly.

Differentiation of Explicitly Parallel Codes

The team of researchers at Rice have recently developed a prototype implementation of ADIFOR-MP, a "message-passing aware" version of ADIFOR. ADIFOR-MP is capable of augmenting explicitly parallel programs written using a subset of MPI or PVM message-passing routines. This new functionality makes it possible to take an MPI- or PVM-based simulation and incorporate it into an MDO framework. Stripmining can be used in conjunction with ADIFOR-MP to further increase the use of parallelism in the computation of derivatives.

To date, the ADIFOR-MP prototype has been applied to two explicitly parallel CFD solvers; the PVM implementation of OVERFLOW, developed at Ames, and the MPI implementation of TLNS3D, developed at NASA Langley Research Center. Preliminary results on OVERFLOW were presented by Rice's Mike Fagan at the 1996 Computational Aerosciences Workshop held in October at Ames.

`Even More' ADIFOR-MP Users Needed

The goal from the beginning of the ADIFOR project has been to construct a robust implementation of AD that can be used to construct derivative-enhanced versions of real codes. Since ADIFOR 2.0 became available in the summer of 1995 it has been requested by more than 200 users. To drive additional ADIFOR-MP development efforts, the ADIFOR team is interested in finding and collaborating with even more users who need accurate derivatives for explicitly parallel codes. Only through such collaborations will researchers achieve a good understanding of how MPI and PVM are used in practice and ensure that ADIFOR-MP is truly usable.

ADIFOR Availability

More information about the ADIFOR project: To obtain the ADIFOR 2.0 System, email request to or to