


New Tool Provides Accurate Derivatives for Multidisciplinary Applications
Source: NAS News, January 16, 1997 As part of the consortium headed by IBM Corp. under the High Performance Computing and Communications (HPCC) Program's Testbed1 Cooperative Research Announcement (CRA), and in conjunction with the Multidisciplinary Design Optimization Branch at NASA Langley Research Center, Rice University has developed ADIFORMP, 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 finitedifference approximations, or develop a program to compute the analytic derivatives. Finite differences are typically used in order to avoid the tedious, timeconsuming, and errorprone programming required to construct code that computes the derivatives analytically. Unfortunately, it is usually very difficult to judge the accuracy of finitedifference 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 & ParallelismThe 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 StripminingAD, 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 CodesThe team of researchers at Rice have recently developed a prototype implementation of ADIFORMP, a "messagepassing aware" version of ADIFOR. ADIFORMP is capable of augmenting explicitly parallel programs written using a subset of MPI or PVM messagepassing routines. This new functionality makes it possible to take an MPI or PVMbased simulation and incorporate it into an MDO framework. Stripmining can be used in conjunction with ADIFORMP to further increase the use of parallelism in the computation of derivatives.To date, the ADIFORMP 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' ADIFORMP Users NeededThe goal from the beginning of the ADIFOR project has been to construct a robust implementation of AD that can be used to construct derivativeenhanced 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 ADIFORMP 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 ADIFORMP is truly usable.ADIFOR AvailabilityMore information about the ADIFOR project: To obtain the ADIFOR 2.0 System, email request to adifor@mcs.anl.gov or to adifor@cs.rice.edu.Sites & Affiliations  Leadership  Research & Applications  Major Accomplishments  FAQ  Search  Knowledge & Technology Transfer  Calendar of Events  Education & Outreach  Media Resources  Technical Reports & Publications  Parallel Computing Research Quarterly Newsletter  News Archives  Contact Information
