Automatic generation of parallel and coherent code using the YAO variational data assimilation framework

Variational data assimilation estimates key control parameters of a numerical model to minimize the misfit between model and actual observations. YAO is a code generator based on a modular graph decomposition of the model; it is particularly suited to generating adjoint codes, which is the basis for variational assimilation experiments. We present an algorithm that checks the consistency of the calculations defined by the user. We then present how the modular graph structure enables an automatic and efficient parallelization of the generated code on shared memory architectures avoiding data race conditions. We demonstrate our approach on actual geophysical applications.

[1]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[2]  Ken Kennedy,et al.  Automatic decomposition of scientific programs for parallel execution , 1987, POPL '87.

[3]  Ken Kennedy,et al.  Typed Fusion with Applications to Parallel and Sequential Code Generation , 1994 .

[4]  Yves Robert,et al.  Scheduling and Automatic Parallelization , 2000, Birkhäuser Boston.

[5]  Michael A. Frumkin,et al.  Automatic Generation of OpenMP Directives and Its Application to Computational Fluid Dynamics Codes , 2000, ISHPC.

[6]  Eugenia Kalnay,et al.  Atmospheric Modeling, Data Assimilation and Predictability , 2002 .

[7]  Sylvie Thiria,et al.  Use of a neuro-variational inversion for retrieving oceanic and atmospheric constituents from satellite ocean colour sensor: Application to absorbing aerosols , 2006, Neural Networks.

[8]  M. Berrada Une approche variationnelle de l'inversion : de la recherche locale à la recherche globale par carte topologique : application en inversion géoacoustique , 2008 .

[9]  G. Madec NEMO ocean engine , 2008 .

[10]  S. Thiria,et al.  Inversion of satellite ocean colour imagery and geoacoustic characterization of seabed properties: Variational data inversion using a semi-automatic adjoint approach , 2008 .

[11]  Frédéric Guyomarc'h,et al.  A Graphical Framework for High Performance Computing Using An MDE Approach , 2008, 16th Euromicro Conference on Parallel, Distributed and Network-Based Processing (PDP 2008).

[12]  Uday Bondhugula,et al.  A practical automatic polyhedral parallelizer and locality optimizer , 2008, PLDI '08.

[13]  Fouad Badran,et al.  YAO: A Software for Variational Data Assimilation Using Numerical Models , 2009, ICCSA.

[14]  Luigi Nardi,et al.  Formalisation et automatisation de YAO, générateur de code pour l'assimilation variationnelle de données , 2011 .

[15]  Fouad Badran,et al.  YAO: A Generator of Parallel Code for Variational Data Assimilation Applications , 2012, 2012 IEEE 14th International Conference on High Performance Computing and Communication & 2012 IEEE 9th International Conference on Embedded Software and Systems.

[16]  A. Lorenc,et al.  Operational implementation of a hybrid ensemble/4D‐Var global data assimilation system at the Met Office , 2013 .

[17]  H. Ngodock,et al.  A 4DVAR System for the Navy Coastal Ocean Model. Part 1: System Description and Assimilation of Synthetic Observations in Monterey Bay , 2014 .