With the Advanced Computation and I/O Methods for Earth-System Simulations (AIMES) project we will address the key issues of programmability, computational efficiency and I/O limitations that are common in next-generation icosahedral earth-system models. Ultimately, with the project we intend to foster development of best-practices and useful norms by cooperating on shared ideas and components. During the project, we will ensure that the developed concepts and tools are not only applicable for earth-science but for other scientific domains as well.
The project is funded by the Deutsche Forschungsgemeinschaft (DFG), the Japan Science and Technology Agency (JST) and the L'Agence nationale de la recherche (ANR) in Frankreich.
Please see our currently ongoing standardization effort for compression.
AIMES focuses on three goals:
We apply and advance concepts and tools for domain-specific languages on earth-system models to reach a higher-level of code design.
Firstly, the DSL will be able to be converted into existing language constructs and may reuse lower-level DSLs such as C++ template libraries. The language will offer a syntax to abstract from memory management and architecture that allows modellers to express the model operators in a natural and simple way and, thus, reduces code length and improves programmability.
Secondly, a light-weight source-to-source translation tool is developed that converts code enriched with the DSL into code for a given architecture. We explore different back-ends for automatic creation of code for a set of target languages and platforms, and especially conversion into existing DSL concepts that have proven to be performant yet may be difficult to learn and manage for scientists.
Thirdly, based on the common concept we develop and evaluate language dialects for NICAM, DYNAMICO and ICON kernels that allow to express the models in their respective natural formulation (each team may prefer other formulations). In contrast to existing tools and DSLs, we pioneer concepts and tools that enable scientists to create a small language to enrich code of a specific model with even higher-level constructs. They can also derive dialects from a common meta-dsl which enables sharing of similar concepts and transformations within communities. In practice, schemes for model-specific back-ends could be created by experienced domain scientists themselves, but in the best case by scientific programmers that are familiar with the particular meta-dsl. The code created by back-ends is then processed by existing tools from computer science. This separation of concerns provides advantages from both SW engineering point of view and architecture-specific performance.
Data handling is advanced by two complementing approaches: the investigation of suitable formats for icosahedral data and by pushing lossy compression forward. We will inform the responsible consortia about these results, propose strategies to overcome the current limitations and implement selected prototypes. For lossy compression, firstly, we develop an interface that allows users to set the required data properties. Secondly, we investigate methods and processes to (semi)-automatically propose these properties to the user such that compressed data cannot be scientifically distinguished from original data. Thirdly, we investigate and adapt existing schemes to improve their compression rate.
We extract the key-functionality and application-specific kernels from the three models into a shared open-source benchmark suite that represents behavior of icosahedral models. A common application-specific benchmark is a benefit by its own, because it provides a well-defined environment for computer scientists to experiment with optimization strategies. Based on this testbed we evaluate the created language dialects and tool infrastructure on small and large scale. The machine-specific code transformation allow generation of code for different CPU architectures, GPUs and the Xeon Phi.