×

Mixed-language automatic differentiation. (English) Zbl 1455.65036

Summary: As Automatic Differentiation (AD) usage is spreading to larger and more sophisticated applications, problems arise for codes that use several programming languages. This work describes the issues involved in interoperability between languages and focuses on the main issue which is parameter-passing. It describes the architecture of a source-transformation AD tool and the algorithms used to differentiate mixed-language codes. A language-independent internal representation enables the application of global analysis and strategies on the entire source code. Our goal is that the Tapenade AD tool differentiates codes that mix C and Fortran and generates efficient differentiated code using these strategies.

MSC:

65D25 Numerical differentiation
68W30 Symbolic computation and algebraic computation
PDFBibTeX XMLCite
Full Text: DOI Link

References:

[1] A system for interfacing MATLAB with external software geared toward automatic differentiationMathematical Software—ICMS 2006, Proceedings of the Second International Congress on Mathematical Software, Castro Urdiales, Spain, September 1–3, 2006Lecture Notes in Computer Science Vol. 4151, Springer, Berlin2006373384 · Zbl 1230.65148
[2] Mixed language programmingComputing in High Energy Physics: CHEP ’95—Proceedings of the International Conference, World Scientific Publishing Co. Ptv. Ltd.Rio de Janeiro19966106149789814447188
[3] Charpentier, I.; Utke, J., fast higher-order derivative tensors with rapsodia, Optim. Methods Softw., 24, 1, 1-14, (2009) · Zbl 1166.65009
[4] abstract interpretation based formal methods and future challenges, invited paperInformatics — 10 Years Back, 10 Years AheadLecture Notes in Computer Science2000SpringerBerlin2001138156
[5] Dhondt, G., The Finite Element Method for Three-Dimensional Thermomechanical Applications, (2004), Wiley, Chichester · Zbl 1093.74001
[6] Hascoët, L.; Morlighem, M., source-to-source adjoint algorithmic differentiation of an ice sheet model written in C, Optim. Method Softw., 1-15, (2017)
[7] Hascoët, L.; Pascual, V., the tapenade automatic differentiation tool: principles, model, and specification, ACM Trans. Math. Softw., 39, 3, 20:1-20:43, (2013) · Zbl 1295.65026
[8] Hascoët, L.; Naumann, U.; Pascual, V., ‘to be recorded’ analysis in reverse-mode automatic differentiation, Future Gen. Comput. Syst., 21, 8, 1401-1417, (2005)
[9] Hueckelheim, J. C.; Hascoët, L.; Müller, J.-D., algorithmic differentiation of code with multiple context-specific activities, ACM Trans. Math. Softw., 43, 35, (2016)
[10] Muchnick, S. S., Advanced Compiler Design and Implementation, (1997), Morgan Kaufmann, San Francisco, CA
[11] Narayanan, S. H.K.; Norris, B.; Winnicka, B., ADIC2: development of a component source transformation system for differentiating C and C++, Procedia Comput. Sci., 1, 1, 1845-1853, (2010)
[12] extension of TAPENADE toward Fortran 95Automatic Differentiation: Applications, Theory, and ImplementationsLecture Notes in Computational Science and EngineeringSpringerBerlin2005171179
[13] TAPENADE for CAdvances in Automatic DifferentiationSpringerBerlin2008199209
[14] native handling of message-passing communication in data-flow analysisRecent Advances in Algorithmic DifferentiationLecture Notes in Computational Science and Engineering87SpringerBerlin20128392
[15] Utke, J.; Naumann, U.; Fagan, M.; Tallent, N.; Strout, M.; Heimbach, P.; Hill, C.; Wunsch, C., openad/F: A modular, open-source tool for automatic differentiation of Fortran codes, ACM Trans. Math. Softw., 34, 4, 18:1-18:36, (2008) · Zbl 1291.65140
[16] Utke, J.; Rearden, B. T.; Lefebvre, R. A., sensitivity analysis for mixed-language numerical models, Procedia Comput. Sci., 18, 1794-1803, (2013)
[17] development and first applications of TAC++Advances in Automatic DifferentiationSpringerBerlin2008187197
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.