YAO: A Generator of Parallel Code for Variational Data Assimilation Applications

Variational data assimilation consists in estimating control parameters of a numerical model in order to minimize the misfit between the forecast values and the actual observations. The YAO framework is a code generator that facilitates, especially for the adjoint model, the writing and the generation of a variational data assimilation program for a given numerical application. In this paper we present how the modular graph specific to YAO enables the automatic and efficient parallelization of the generated code with OpenMP on shared memory architectures. Thanks to this modular graph we are also able to completely avoid the data race conditions (write/write conflicts). Performance tests with actual applications demonstrates good speedups on a multicore CPU.

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

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

[3]  Olivier Talagrand,et al.  Assimilation of Observations, an Introduction (gtSpecial IssueltData Assimilation in Meteology and Oceanography: Theory and Practice) , 1997 .

[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 .