ESR 14: Multi-Paradigm Distribution for Model Management OperationsJolan Philippe
IMT Atlantique (IMT) (France)
Declarative model query and transformation languages (MTL) are primary candidates for expressing operations on artefacts in LCEPs, e.g. for translation, analysis or code generation. They allow for a concise executable description of the operation semantics, which is highly readable and understandable, thus ideally suitable for citizen developers. Research on the implicit distribution of such langages is an active area of research, with the purpose of combining development efficiency with high scalability, needed for the very large models in LCE. Current approaches focus on mapping the declarative MTL to an existing distributed programming model. The choice of the underlying programming model among the plethora of available ones is based on affinity with the execution semantics of the MTL and on the desired efficiency properties. For instance the ATL language has been mapped to MapReduce, Linda, Reactive Programming. Experimentation in these works has shown that the choice of most efficient programming model is strongly dependent on the particular transformation.
In this project we want to develop static and dynamic analysis techniques for declarative MTL code, in order to automatically select the most efficient programming model for a given transformation. Moreover, within a transformation it may be possible to identify sub-computations that are more efficiently distributed using a different programming model w.r.t. the rest of the transformation. Hence, we want to be able to automatically decompose the transformation (e.g., through graph partitioning techniques) and independently select a programming model for each one of the sub-transformations according to some static or dynamic constraints. Such an approach will require an orchestration mechanism among different transformation engines with synchronization points based on recent research on model coordinatio, and sharing of intermediate data. The final orchestrator will also be able to integrate natively distributed transformation engines like the one developed in ESR13. Such an orchestrator could also take advantage of component models to statically or dynamically create an assembly (i.e., a composition) of a set of sub-transformations. Finally, such a set of sub-transformation using heterogeneous programming models should be easy to deploy onto the underlying distributed infrastructure. Component models could also help in this task.
The first project contribution will be a metamodelisation of the space of distributed programming models, i.e. a unified representation of the existing programming models within the same formalism. Afterwards the project will propose a set of formal mappings between the class of relational MTLs (i.e., languages like QVT, ATL, ETL) and several programming models, in the form of higher-order transformations. In a second phase, given a transformation and set of programming models, the project will provide cost models to predict the performance of that transformation on each programming model.
Finally, a decomposition mechanism for transformation will be defined, in order to minimize the cost of the global execution.
The project will produce a concrete component for the Lowcomotive platform, in the form of an orchestrator for model transformations over a set of distributed engines.