Publication: Source-to-source adjoint Algorithmic Differentiation of an ice sheet model written in C
Introduction
Applications
Tools
Research Groups
Workshops
Publications
   List Publications
   Advanced Search
   Info
   Add Publications
My Account
About

Source-to-source adjoint Algorithmic Differentiation of an ice sheet model written in C

- Article in a journal -
 

Author(s)
Laurent HascoŽt , Mathieu Morlighem

Published in
Special issue of Optimization Methods & Software: Advances in Algorithmic Differentiation Optimization Methods & Software

Editor(s)
Bruce Christianson, Shaun A. Forth, Andreas Griewank

Year
2018

Publisher
Taylor & Francis

Abstract
Algorithmic Differentiation (ad) has become a powerful tool to improve our understanding of the Earth System, because it can generate adjoint code which permits efficient calculation of gradients that are essential to sensitivity studies, inverse problems, parameter estimation and data assimilation. Most source-to-source transformation tools, however, have been designed for FORTRAN and support for C remains limited. Here we use the Adjoinable Land Ice Flow model (ALIF), a C clone of the C++ Ice Sheet System Model (ISSM) and employ source-to-source ad to produce its adjoint code. We present the first running source-to-source adjoint of ALIF, and its application to basal drag inversion under Pine Island Glacier, West Antarctica. ALIF brought several challenges to ad tool development, such as the correct treatment of the context code, which does not compute the differentiable function, but controls this computation through the setup of data structures, including possible aliasing, as well as data-flow reversal in the presence of pointers and dynamic memory, which are ubiquitous in codes such as ISSM and ALIF. We present the strategies we have developed to overcome these challenges.

Cross-References
Christianson2018Sio

BibTeX
@ARTICLE{
         Hascoet2018Sts,
       crossref = "Christianson2018Sio",
       author = "Laurent Hasco{\"e}t and Mathieu Morlighem",
       title = "Source-to-source adjoint Algorithmic Differentiation of an ice sheet model written in
         {C}",
       journal = "Optimization Methods \& Software",
       volume = "33",
       number = "4--6",
       pages = "829--843",
       year = "2018",
       publisher = "Taylor \& Francis",
       doi = "10.1080/10556788.2017.1396600",
       url = "https://doi.org/10.1080/10556788.2017.1396600",
       eprint = "https://doi.org/10.1080/10556788.2017.1396600",
       abstract = "Algorithmic Differentiation (AD) has become a powerful tool to improve our
         understanding of the Earth System, because it can generate adjoint code which permits efficient
         calculation of gradients that are essential to sensitivity studies, inverse problems, parameter
         estimation and data assimilation. Most source-to-source transformation tools, however, have been
         designed for FORTRAN and support for C remains limited. Here we use the Adjoinable Land Ice Flow
         model (ALIF), a C clone of the C++ Ice Sheet System Model (ISSM) and employ source-to-source AD to
         produce its adjoint code. We present the first running source-to-source adjoint of ALIF, and its
         application to basal drag inversion under Pine Island Glacier, West Antarctica. ALIF brought several
         challenges to AD tool development, such as the correct treatment of the context code, which does not
         compute the differentiable function, but controls this computation through the setup of data
         structures, including possible aliasing, as well as data-flow reversal in the presence of pointers
         and dynamic memory, which are ubiquitous in codes such as ISSM and ALIF. We present the strategies
         we have developed to overcome these challenges.",
       booktitle = "Special issue of Optimization Methods \& Software: Advances in
         Algorithmic Differentiation",
       editor = "Bruce Christianson and Shaun A. Forth and Andreas Griewank"
}


back
  

Contact:
autodiff.org
Username:
Password:
(lost password)