Automatic Differentiation of Parallel Programs

  • Authors:
  • Paul D Hovland

  • Affiliations:
  • -

  • Venue:
  • Automatic Differentiation of Parallel Programs
  • Year:
  • 1997

Quantified Score

Hi-index 0.00

Visualization

Abstract

There are many areas of computational science in which it is necessary or desirable to compute derivatives. Automatic differentiation (AD) tools such as ADIFOR and ADIC have proven very useful for developing derivative code for programs written in Fortran and C. However, many scientific applications are written for or ported to parallel platforms to maximize performance. We have developed tools and techniques for applying AD to parallel programs, paying special attention to message-passing parallel programs. We list several potential problems that arise in differentiating parallel programs and present solutions for each of them. Some of the issues concern the correctness of the generated code, whereas others concern performance. While many of the issues have analogues in sequential programs, the solution is often quite different. In addition, some new concerns arise that are unique to parallel programs. We also describe how the tools and techniques developed to enable AD of parallel programs were applied to a variety of applications, ranging from a simple test problem to a parallel molecular dynamics application. The results confirm the need for and efficacy of several techniques. They also verify the prediction that the program generated by AD will generally demonstrate better speedup and scalability than the original program. We conclude with some brief remarks on how AD can be applied to other types of parallel programs and a description of how this work relates to other research in the areas of AD and scientific computing.