×

A usability case study of algorithmic differentiation tools on the ISSM ice sheet model. (English) Zbl 1453.86049

Summary: Algorithmic differentiation (AD) based on operator overloading is often the only feasible approach for applying AD in complex C software environments. Challenges pertaining to the introduction of an AD tool based on operator overloading have been studied in the past. However, in order to assess possible performance gains or to verify derivative values, it is advantageous to be able to apply more than one AD tool to a given code. Hence, in this work, we investigate usability issues when exchanging AD tools. Our study is based on the NASA/JPL/UCI Ice Sheet System Model (ISSM) which currently employs the AD tool ADOL-C. We introduce CoDiPack to ISSM, a more recent AD tool offering a similar set of features while promising performance improvements. In addition to the obvious type change for the AD-augmented float type, this transition requires the change to a different adjoint MPI library, adaptation of the MUMPS solver wrapper, and changes to the derivative seeding and extraction routines. We believe that these issues are fairly generic for numerical simulation software, and the issues we report on provide a blueprint for similar undertakings. We also believe that our experiences provide guidance towards the development of AD interfaces that support AD tool interoperability. In addition, we improve upon the memory management of the existing ADOL-C instrumentation, which exhibited considerable runtime problems for higher mesh resolutions. We conduct serial and parallel ISSM model runs on a 2D mass transport benchmark as well as a model of the Pine Island Glacier to verify the derivatives computed by both tools and report on runtime performance and memory usage. In comparison, the CoDiPack AD variant of ISSM runs faster with less memory overhead than the ADOL-C variant and, thus, enables future model runs with an increased number of mesh elements. But the existence of two different AD implementations provides added confidence in the correctness of derivatives, in particular for future AD tool versions.

MSC:

86A40 Glaciology
86-08 Computational methods for problems pertaining to geophysics
68W30 Symbolic computation and algebraic computation
PDFBibTeX XMLCite
Full Text: DOI

References:

[1] Albring, T. A.; Sagebaum, M.; Gauger, N. R., Development of a consistent discrete adjoint solver in an evolving aerodynamic design framework, (2015)
[2] Amestoy, P. R.; Duff, I. S.; L’Excellent, J. Y.; Koster, J.; Sørevik, T.; Manne, F.; Gebremedhin, A. H.; Moe, R., 121-130, (2000), Springer, Berlin
[3] Asch, M.; Bocquet, M.; Nodet, M., Data Assimilation: Methods, Algorithms, and Applications, (2016), Society for Industrial and Applied Mathematics (SIAM), Philadelphia · Zbl 1361.93001
[4] PETSc Users Manual, Tech. Rep. ANL-95/11 – Revision 3.7, Argonne National Laboratory, 2016
[5] Bischof, C. H.; Haghighat, M. R.; Berz, M.; Bischof, C.; Corliss, G.; Griewank, A., 83-94, (1996), SIAM, Philadelphia
[6] Bischof, C.; Khademi, P.; Mauer, A.; Carle, A., ADIFOR 2.0: automatic differentiation of Fortran 77 programs, IEEE Comput. Sci. Eng., 3, 18-32, (1996)
[7] Bischof, C. H.; Bücker, H. M.; Hovland, P. D., on combining computational differentiation and toolkits for parallel scientific computing, 86-94, (2000), Springer
[8] Bischof, C. H.; Hovland, P. D.; Norris, B., implementation of automatic differentiation tools, ACM SIGPLAN Not., 37, 98-107, (2002)
[9] Bischof, C. H.; Bücker, H. M.; Rasch, A., sensitivity analysis of turbulence models using automatic differentiation, SIAM J. Sci. Comput., 26, 510-522, (2004) · Zbl 1077.68932
[10] Carmichael, G. R.; Sandu, A.; Potra, F. A., sensitivity analysis for atmospheric chemistry models via automatic differentiation, Atmos. Environ., 31, 475-489, (1997)
[11] Giering, R.; Kaminski, T., recipes for adjoint code construction, ACM Trans. Math. Softw., 24, 437-474, (1998) · Zbl 0934.65027
[12] collected matrix derivative results for forward and reverse mode algorithmic differentiationAdvances in Automatic DifferentiationSpringerBerlin20083544
[13] Gough, B., GNU Scientific Library Reference Manual, (2009), Network Theory Ltd.
[14] Griewank, A.; Walther, A., Evaluating Derivatives, (2008), Society for Industrial and Applied Mathematics (SIAM), Philadelphia
[15] Griewank, A.; Juedes, D.; Utke, J., algorithm 755: ADOL-C: A package for the automatic differentiation of algorithms written in C/C++, ACM Trans. Math. Softw., 22, 131-167, (1996) · Zbl 0884.65015
[16] Habbal, F.; Larour, E.; Morlighem, M.; Seroussi, H.; Borstad, C. P.; Rignot, E., optimal numerical solvers for transient simulations of ice flow using the ice sheet system model (ISSM versions 4.2.5 and 4.11), Geosci. Model Dev., 10, 155-168, (2017)
[17] Hascoët, L.; Naumann, U.; Pascual, V., ‘to be recorded’ analysis in reverse-mode automatic differentiation, Fut. Gener. Comput. Syst., 21, 1401-1417, (2005)
[18] Hogan, R. J., fast reverse-mode automatic differentiation using expression templates in C++, ACM Trans. Math. Softw., 40, 26:1-26:16, (2014) · Zbl 1369.65037
[19] Hovland, P.; Lee, S.; McInnes, L.; Norris, B.; Smith, B.; Biegler, L. T.; Heinkenschloss, M.; Omar, G.; van Bloemen Waanders, B., 133-147, (2003), Springer, Berlin
[20] Checking C++ codes for compatibility with operator overloading, in 15th IEEE International Working Conference on Source Code Analysis and Manipulation, Vol. 15, IEEE, Bremen, 2015, pp. 91–100. Available at
[21] Hück, A.; Utke, J.; Bischof, C., source transformation of C++ codes for compatibility with operator overloading, Procedia Comput. Sci., 80, 1485-1496, (2016)
[22] Keyes, D. E.; McInnes, L. C.; Woodward, C.; Gropp, W.; Myra, E.; Pernice, M.; Bell, J.; Brown, J.; Clo, A.; Connors, J.; Constantinescu, E.; Estep, D.; Evans, K.; Farhat, C.; Hakim, A.; Hammond, G.; Hansen, G.; Hill, J.; Isaac, T.; Jiao, X.; Jordan, K.; Kaushik, D.; Kaxiras, E.; Koniges, A.; Lee, K.; Lott, A.; Lu, Q.; Magerlein, J.; Maxwell, R.; McCourt, M.; Mehl, M.; Pawlowski, R.; Randles, A. P.; Reynolds, D.; Rivière, B.; Rüde, U.; Scheibe, T.; Shadid, J.; Sheehan, B.; Shephard, M.; Siegel, A.; Smith, B.; Tang, X.; Wilson, C.; Wohlmuth, B., multiphysics simulations: challenges and opportunities, Int. J. High Perform. Comput. Appl., 27, 4-83, (2013)
[23] Kulshreshtha, K.; Narayanan, S. H.K.; Albring, T.; Bociu, L.; Désidéri, J. A.; Habbal, A., A mixed approach to adjoint computation with algorithmic differentiation, System Modeling and Optimization: 27th IFIP TC 7 Conference, CSMO 2015, 331-340, (2015), Springer International Publishing, Cham
[24] Larour, E.; Seroussi, H.; Morlighem, M.; Rignot, E., continental scale, high order, high spatial resolution, ice sheet modeling using the ice sheet system model, J Geophys Res: Earth Surf, 117, 1-20, (2012)
[25] Larour, E.; Utke, J.; Csatho, B.; Schenk, A.; Seroussi, H.; Morlighem, M.; Rignot, E.; Schlegel, N.; Khazendar, A., inferred basal friction and surface mass balance of the northeast greenland ice stream using data assimilation of icesat (ice cloud and land elevation satellite) surface altimetry and ISSM (ice sheet system model), Cryosphere, 8, 2335-2351, (2014)
[26] Larour, E.; Utke, J.; Bovin, A.; Morlighem, M.; Perez, G., an approach to computing discrete adjoints for MPI-parallelized models applied to ice sheet system model 4.11, Geosci. Model Dev., 9, 3907-3918, (2016)
[27] OProfile, Available at , last accessed: Jan 2017
[28] dco/c++ – Derivative Code by Overloading in C++, Tech. Rep., RWTH Aachen, 2011
[29] Ice sheet properties inferred by combining numerical modeling and remote sensing data, Theses, Ecole Centrale Paris, 2011
[30] 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, 1845-1853, (2010)
[31] Naumann, U., The Art of Differentiating Computer Programs: An Introduction to Algorithmic Differentiation, Vol. 24, (2012), Society for Industrial and Applied Mathematics (SIAM), Philadelphia · Zbl 1275.65015
[32] Naumann, U.; Lotz, J.; Leppkes, K.; Towara, M., algorithmic differentiation of numerical methods: tangent and adjoint solvers for parameterized systems of nonlinear equations, ACM Trans. Math. Softw., 41, 26:1-26:21, (2015) · Zbl 1347.65099
[33] Nethercote, N.; Seward, J., valgrind: A framework for heavyweight dynamic binary instrumentation, ACM SIGPLAN Not., 42, 89-100, (2007)
[34] Pawlowski, R. P.; Phipps, E. T.; Salinger, A. G., automating embedded analysis capabilities and managing software complexity in multiphysics simulation, part I: template-based generic programming, Sci. Program., 20, 197-219, (2012)
[35] Sagebaum, M.; Gauger, N. R.; Naumann, U.; Lotz, J.; Leppkes, K., algorithmic differentiation of a complex C++ code with underlying libraries, Procedia Comput. Sci., 18, 208-217, (2013)
[36] Schanen, M.; Naumann, U.; Hascoët, L.; Utke, J., interpretative adjoints for numerical simulation codes using MPI, Procedia Comput. Sci., 1, 1825-1833, (2010)
[37] Seroussi, H.; Morlighem, M.; Rignot, E.; Mouginot, J.; Larour, E.; Schodlok, M.; Khazendar, A., sensitivity of the dynamics of pine island glacier, west antarctica, to climate forcing for the next 50 years, Cryosphere, 8, 1699-1710, (2014)
[38] Tadjouddine, M.; Forth, S. A.; Keane, A. J.; Martin, B.; George, C.; Uwe, N.; Paul, H.; Boyana, N., adjoint differentiation of a structural dynamics solver, Automatic Differentiation: Applications, Theory, and Implementations, 309-319, (2006), Springer, Berlin · Zbl 1270.74203
[39] Utke, J.; Hascoët, L.; Heimbach, P.; Hill, C.; Hovland, P.; Naumann, U., toward adjoinable MPI, 1-8, (2009)
[40] Veldhuizen, T., expression templates, C++ Report, 7, 26-31, (1995)
[41] getting started with ADOL-CCombinatorial Scientific ComputingChap. 7, Chapman-Hall CRC Computational Science2012181202
[42] ADOL-C Manual, 2016
[43] Willkomm, J.; Bischof, C. H.; Bücker, H. M.; Shaun, F.; Paul, H.; Eric, P.; Jean, U.; Andrea, W., 127-138, (2012), Springer, Berlin
[44] Zhou, B. Y.; Albring, T.; Gauger, N. R.; Economon, T. D.; Palacios, F.; Alonso, J. J., A discrete adjoint framework for unsteady aerodynamic and aeroacoustic optimization, (2015)
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.