Articles | Volume 9, issue 11
Geosci. Model Dev., 9, 3907–3918, 2016
Geosci. Model Dev., 9, 3907–3918, 2016

Development and technical paper 01 Nov 2016

Development and technical paper | 01 Nov 2016

An approach to computing discrete adjoints for MPI-parallelized models applied to Ice Sheet System Model 4.11

Eric Larour1, Jean Utke2, Anton Bovin3, Mathieu Morlighem4, and Gilberto Perez5 Eric Larour et al.
  • 1Jet Propulsion Laboratory, California Institute of technology, 4800 Oak Grove Drive MS 300-323, Pasadena, CA 91109-8099, USA
  • 2Allstate Insurance Company, 2775 Sanders Rd., Northbrook, IL 60062, USA
  • 3Department of Physics, The University of Chicago, 5720 South Ellis Avenue, Chicago, IL 60637, USA
  • 4University of California, Irvine, Department of Earth System Science, Croul Hall, Irvine, CA 92697-3100, USA
  • 5University of California, Irvine, School of Information and Computer Sciences, Irvine, CA 92697-3100, USA

Abstract. Within the framework of sea-level rise projections, there is a strong need for hindcast validation of the evolution of polar ice sheets in a way that tightly matches observational records (from radar, gravity, and altimetry observations mainly). However, the computational requirements for making hindcast reconstructions possible are severe and rely mainly on the evaluation of the adjoint state of transient ice-flow models. Here, we look at the computation of adjoints in the context of the NASA/JPL/UCI Ice Sheet System Model (ISSM), written in C++ and designed for parallel execution with MPI. We present the adaptations required in the way the software is designed and written, but also generic adaptations in the tools facilitating the adjoint computations. We concentrate on the use of operator overloading coupled with the AdjoinableMPI library to achieve the adjoint computation of the ISSM. We present a comprehensive approach to (1) carry out type changing through the ISSM, hence facilitating operator overloading, (2) bind to external solvers such as MUMPS and GSL-LU, and (3) handle MPI-based parallelism to scale the capability. We demonstrate the success of the approach by computing sensitivities of hindcast metrics such as the misfit to observed records of surface altimetry on the northeastern Greenland Ice Stream, or the misfit to observed records of surface velocities on Upernavik Glacier, central West Greenland. We also provide metrics for the scalability of the approach, and the expected performance. This approach has the potential to enable a new generation of hindcast-validated projections that make full use of the wealth of datasets currently being collected, or already collected, in Greenland and Antarctica.

Short summary
We present an approach to derive the adjoint state of the C++ coded Ice Sheet System Model. The approach enables data assimilation of observations to improve projections of polar ice sheet mass balance and contribution to sea-level rise. It is applicable to other Earth science frameworks relying on C++ and parallel computing, is non-intrusive, and enables computation of transient adjoints for any type of physics, hence providing insights into the sensitivities of any model to its inputs.