Section: New Results
Application to large industrial codes
Participants : Valérie Pascual, Laurent Hascoët, Bruno Maugars [ONERA] , Sébastien Bourasseau [ONERA] , Cédric Content [ONERA] , Jose I. Cardesa [IMFT] , Christophe Airiau [IMFT] .
We support industrial users with their first experiments of Algorithmic Differentiation of large in-house codes. This concerned two industrial codes this year.
One application is with ONERA on their ElsA CFD platform (Fortran 90). This is the continuation of a collaboration started in 2018. Both tangent and adjoint models of the kernel of ElsA were built successfully with Tapenade. This year's work was mostly about improving efficiency. It is worth noticing that this application was performed inside ONERA by ONERA engineers (Bruno Maugars, Sébastien Bourasseau, Cédric Content) with no need for installation of ElsA inside Inria. We take this as a sign of maturity of Tapenade. Our contribution is driven by development meetings, in which we point out some strategies and tool options to improve efficiency of the adjoint code. As a result from these discussions, we developed improved strategies and AD model, that will be useful to other tools. These improvements deal mostly with the adjoint of vectorized code. We prepared together an aticle that describes the architecture of a modular and AD-friendly ElsA, together with the corresponding extensions of the AD model of Tapenade. This article has been submitted to “Computers and Fluids”.
The other application ultimately targets AD of the “Jaguar” code, developed jointly by ONERA, CERFACS, and IMFT in Toulouse. This is a collaboration with Jose I. Cardesa and Christophe Airiau, both at IMFT. After a relatively easy tangent differentiation, most of the effort was devoted to obtaining a running and efficient adjoint code. Not too surprisingly, the main source of trouble was the Message-Passing parallel aspect on the application code. This underlined a lack of debugging support for adjoint-differentiated code. Given the run-time of the simulation that we consider (from hours to a few days on a 4110 processors platform), efficiency is crucial. We used the optimal binomial checkpointing scheme at the time-stepping level. However, performance of the adjoint code can probably be improved further with a better checkpointing scheme on the call tree. This calls in particular for AD-specific performance profiling tools, that we are planning to develop. We prepared together an article that describes this succesful experiment, which is now submitted to “Journal of Computational Science”.
Two collaborations are in preparation for next year, one with Jan Hueckelheim at Argonne National Lab. about SIMD parallel codes, and one with Stefano Carli at KU Leuven about adjoint AD of the plasma code SOLPS-ITER.