ABSTRACT
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.
- 1.J. Benary. Parallelism in the reverse mode. In M. Berz, C. Bischof, G. Corliss, and A. Griewank, editors, Computational Differentiation: Techniques, Applications, and Tools, pages 137-148, Philadelphia, 1996. SIAM.Google Scholar
- 2.M. Berz, C. Bischof, G. Corliss, and A. Griewank. Computational Differentiation: Techniques, Applications, and Tools. SIAM, Philadelphia, 1996.Google Scholar
- 3.C. Bischof, A. Carle, P. Khademi, and A. Mauer. ADIFOR 2.0: Automatic differentiation of Fortran 77 programs. IEEE Computational Science & Engineering, 3(3):18-32, 1996. Google ScholarDigital Library
- 4.C. Bischof, A. Griewank, and D. Juedes. Exploiting parallelism in automatic differentiation. In E. Houstis and Y. Muraoka, editors, Proceedings of the 1991 International Conference onSupercomputing, pages 146-153, Baltimore, Md., 1991. ACM Press. Google ScholarDigital Library
- 5.C. H. Bischof. Issues in parallel automatic differentiation. In A. Griewank and G. Corliss, editors, Automatic Differentiation of Algorithms, pages 100-113, Philadelphia, PA, 1991. SIAM.Google Scholar
- 6.C. H. Bischof, H. M. B. ucker, B. Lang, A. Rasch, and J. W. Risch. On the Use of a Differentiated Finite Element Package for Sensitivity Analysis. In V. Alexandrov, J. Dongarra, and C. Tan, editors, Proc. Intl. Conf. Computational Science, San Francisco, May 28-30, 2001, 2001. To appear. Google ScholarDigital Library
- 7.A. Carle and M. Fagan, 2000. Private communication.Google Scholar
- 8.R. Chandra, R. Menon, L. Dagum, D. Kohr, D. Maydan, and J. McDonald. Parallel Programming in OpenMP. Morgan Kaufman Publishers, San Mateo, CA, 2000. Google ScholarDigital Library
- 9.G. Corliss, A. Griewank, C. Faure, L. Hasco.et, and U. Naumann, editors. Automatic Differentiation 2000: From Simulation to Optimization. Springer, 2001. To appear. Google ScholarDigital Library
- 10.H. Fischer. Automatic differentiation: Parallel computation of function, gradient and Hessian matrix. Parallel Computing, 13:101-110, 1990.Google ScholarCross Ref
- 11.A. Griewank. Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation. SIAM, Philadelphia, 2000. Google ScholarDigital Library
- 12.A. Griewank and G. Corliss. Automatic Differentiation of Algorithms. SIAM, Philadelphia, 1991.Google Scholar
- 13.J. Obdrzalek and M. Bull. JOMP Application Program Interface, Version 0.1. EPCC, University of Edinburgh, August 2000. Draft.Google Scholar
- 14.OpenMP Architecture Review Board. OpenMP C and C++ Application Program Interface, Version 1.0, October 1998.Google Scholar
- 15.OpenMP Architecture Review Board. OpenMP Fortran Application Program Interface, Version 2.0, November 2000.Google Scholar
Index Terms
- Bringing together automatic differentiation and OpenMP
Recommendations
Source-to-Source Automatic Differentiation of OpenMP Parallel Loops
This article presents our work toward correct and efficient automatic differentiation of OpenMP parallel worksharing loops in forward and reverse mode. Automatic differentiation is a method to obtain gradients of numerical programs, which are crucial in ...
Automatic parallelism in differentiation of Fourier transforms
SAC '03: Proceedings of the 2003 ACM symposium on Applied computingFor 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 ...
Semi-automatic parallelization of direct and inverse problems for geothermal simulation
SAC '09: Proceedings of the 2009 ACM symposium on Applied ComputingWe describe a strategy for parallelizing a geothermal simulation package using the shared-memory programming model OpenMP. During the code development OpenMP is employed for the direct problem in such a way that, in a subsequent step, the OpenMP-...
Comments