Explicit loop scheduling in OpenMP for parallel automatic differentiation

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...

Full description

Saved in:
Bibliographic Details
Published inProceedings 16th Annual International Symposium on High Performance Computing Systems and Applications pp. 121 - 126
Main Authors Bucker, H.M., Lang, B., Rasch, A., Bischof, C.H., an Mey, D.
Format Conference Proceeding
LanguageEnglish
Published IEEE 2002
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary: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.
ISBN:9780769516264
0769516262
DOI:10.1109/HPCSA.2002.1019144