Automatic generation of parallel and coherent code using the YAO variational data assimilation framework
Résumé
Variational data assimilation consists in estimating key control parameters of a numerical model in order to minimize the misfit between the model values and the actual observations. The YAO framework is a code generator based on a modular graph decomposition of the model; it is dedicated for helping data assimilation experiment achievement. YAO is particularly suited for generating adjoint codes of numerical models, which is the basis for variational assimilation experiments. In this paper, we first present an algorithm which allows to check the consistency of the sequence of calculations defined by the user. We then present how the YAO modular graph structure enables automatic and efficient parallelization of the generated code using OpenMP on shared memory architectures. The YAO modular graph permits to completely avoid the data race conditions (write/write conflicts). The performance tests performed on both simple and complex actual applications chosen in the geophysical domain have shown a good speedup on a multicore CPU.
Origine | Fichiers produits par l'(les) auteur(s) |
---|