Among other things, the DSL language is abstracting away all the details of an efficient parallel implementation and the hardware dependent programming models and optimizations. There are several examples of DSLs being developed and applied to production weather and climate models, like COSMO GridTools (Gysiet al, 2015), the PSyclone for the LFRic model (Adams et al) or the CLAW DSL for column based parameterizations (Clement et al).
In contrast to the existing approaches, that are normally specifically developed for a particular model, the ESCAPE-2 DSL aims at developing a modular toolchain, that supports a wide range of models, numerical methods and grids, by adopting a modular design where domain specific frontends or optimizers can be easily incorporated into the toolchain. Additionally, most of the existing approaches provide a prescriptive language, where the user still has to provide information crucial for parallelization of the algorithm and to obtain good performance. Instead the goal of this document is to provide a high-level descriptive language where the algorithms are described in a sequential manner. The parallelization and optimization implementations are derived by the set of optimizers incorporated in the toolchain.
The recently finalized deliverable D2.1 "High-level domain-specific language (DSL) specification"presents a first definition of a high-level DSL language that is capable of supporting most of the computational patterns present in the models that participate in the ESCAPE-2 project. The document is the outcome of an iterative process and discussions between DSL experts and key model developers. It delivers an extensive and comprehensive grammar, from a holistic perspective where the aim is to provide a unified standard language and HIR (High-level intermediate representation) definition that can deal with a broad spectrum of methods and models. The proposal is a change of paradigm and current state of the art of abstractions and DSLs, where the established tools support only a restricted set of methods or models.
The grammar defined in this document will be the basis of a DSL frontend (D2.2, September 2019) and toolchain implementation (D2.5 May 2021) that will be demonstrated in a set of dwarfs with representative computations from the different models that participate in the project (D2.4 September 2020).
Photo by NOAA on Unsplash