SlideShare une entreprise Scribd logo
1  sur  28
Made available under EPL 1.0
Local Optimizations in
Eclipse QVTc and QVTr using the
Micro-Mapping Model of Computation
Edward D. Willink
Willink Transformations Ltd
Eclipse Foundation
MMT Component co-Lead
OCL Project Lead
QVTd Project Lead
QVTo Committer
OMG (Model Driven Solutions)
OCL 2.3, 2.4, 2.5 RTF Chair
QVT 1.2, 1.3, 1.4 RTF Chair
EXE 2016 @ MODELS 2016
3rd October 2016
3-October-2016 Micro-Mapping Model of Computation 2Made available under EPL 1.0
Overview
QVT Background
Eclipse QVTd architecture
Do things in the right order
imperative/declarative
Intra-mapping scheduling
Example results
Eclipse QVTc/QVTr status
Conclusion
3-October-2016 Micro-Mapping Model of Computation 3Made available under EPL 1.0
QVT Background
Query/View/Transformation
2002: standard transformation language RFP
OMG specification - slow to mature
ATL took a pragmatic short cut
2005: Three language compromise
QVTo (Operational Mappings) - Imperative
2 1 good implementations : SmartQVT, Eclipse QVTo
QVTr (Relational) - Declarative, rich
2 0 poor implementations : ModelMorf, Medini QVT
QVTc (Core) - Declarative, simple
notional common core, no implementations
Eclipse QVTd: QVTc/QVTr editors
3-October-2016 Micro-Mapping Model of Computation 4Made available under EPL 1.0
Eclipse QVTd Tx Chain Architecture
QVTr2QVTc - nominally as in QVT specification
QVTc2QVTu ⇒ Unidirectional (remove reverse bloat)
QVTu2QVTm ⇒ Minimal (remove refinement etc)
QVTm2QVTs ⇒ Create graphical form
QVTs2QVTs ⇒ Optimize/schedule graphical form
QVTs2QVTi ⇒ Imperative executable form
VMNew Intermediate LanguagesQVT Declarative
QVTr QVTc QVTuQVTc QVTm QVTi
OCL
UML
ALF
QVTo
ATL
ETL composition
program-to-program
transformation
XYZ language representation
Java
QVTi +QVTs QVTs
Henshin
UMLX
3-October-2016 Micro-Mapping Model of Computation 5Made available under EPL 1.0
Correct Execution 1
No global state => Object Orientation
No naughty writes => Static Single Assignment
impractical in the large
No naughty writes => Functional Programming
new system, inefficient in the large
But
multiple threads
complex object state
evolving object state
3-October-2016 Micro-Mapping Model of Computation 6Made available under EPL 1.0
Correct Execution 2
No naughty reads
every property read occurs after its property write
Functions - f(a,b,c) { return a.x + g(b.y.z, c); }
parameters easy to analyze - a, b, c
references hard to analyze - g(b.y.z, c)
=> secret undeclared inputs, manual discipline
Declarative Mappings/Relations/Rules
same problem; global analysis necessary/possible
3-October-2016 Micro-Mapping Model of Computation 7Made available under EPL 1.0
Imperative Transformations
Explicit control statements
Manual programming
hopefully good
may be bad
Tooling
hopefully good
may be bad
3-October-2016 Micro-Mapping Model of Computation 8Made available under EPL 1.0
Declarative Transformations
No control statements
Manual programming
different approach, may be good/bad
Tooling
must discover a control strategy
hopefully good
may be VERY BAD
3-October-2016 Micro-Mapping Model of Computation 9Made available under EPL 1.0
Naive Polling Schedule
Retry loop - loop until all work done
Mapping loop - loop over all possible mappings
Object loops - multi-dimensional loop for all object/argument pairings
Compatibility guard - if object/argument pairings are type compatible
Repetition guard - if this is not a repeated execution
Validity guard - if all input objects are ready
Execute mapping for given object/argument pairings
Create a memento of the successful execution
Works for any declarative transformation
Hideously inefficient - VERY VERY BAD
Optimization goal - a statically ordered schedule
3-October-2016 Micro-Mapping Model of Computation 10Made available under EPL 1.0
Doubly Linked List Reversal Example
3-October-2016 Micro-Mapping Model of Computation 11Made available under EPL 1.0
ATL solution
3-October-2016 Micro-Mapping Model of Computation 12Made available under EPL 1.0
QVTr solution
3-October-2016 Micro-Mapping Model of Computation 13Made available under EPL 1.0
Underlying (ATL) functionality
resolveTemp
3-October-2016 Micro-Mapping Model of Computation 14Made available under EPL 1.0
Underlying
QVTr in QVTc
functionality
3-October-2016 Micro-Mapping Model of Computation 15Made available under EPL 1.0
Mapping Diagram Artefacts
3-October-2016 Micro-Mapping Model of Computation 16Made available under EPL 1.0
Mapping MoC
Truth - after execution
to-1 relationships
=> 1:1 group of objects
=> HEAD from which all 1:1 objects can be reached
3-October-2016 Micro-Mapping Model of Computation 17Made available under EPL 1.0
Dependency Conflicts
REALIZE
before
PREDICATE
3-October-2016 Micro-Mapping Model of Computation 21Made available under EPL 1.0
Declarative Transformation Execution
Transformation specifies numerous 'final' truths
relationships between output and input model elements
Execution must proceed step by step
permutations of input objects that match mappings
compute step sequence at compile time
Mapping
good / useful unit of programming
relevant relationships for a few types
bad execution step
deadlocks between relationships
3-October-2016 Micro-Mapping Model of Computation 22Made available under EPL 1.0
Micro-Mapping
Executable step in a declarative execution
no deadlocks between steps
Primitive Micro-Mapping
many dependencies to be satisfied
single action - object creation / property assignment
Composite Micro-Mapping
merge primitives with identical dependencies
multiple actions
3-October-2016 Micro-Mapping Model of Computation 23Made available under EPL 1.0
Primitive Micro-Mappings
One GREEN action at a time
once CYAN predicates satisfied
3-October-2016 Micro-Mapping Model of Computation 24Made available under EPL 1.0
Speculation
All Primitive Micro-Mappings share predicate
Acyclic dependency resolveable at run-time
Cyclic dependency insoluble
need to speculate
defer predicates
ATL ignores inter-mapping predicates
works for typical transformations
Eclipse QVTd ignores predicates wrt trace creation
checks predicates wrt output objects/properties
3-October-2016 Micro-Mapping Model of Computation 25Made available under EPL 1.0
Speculation Partitioning
Overall 1: Speculating
2: Speculated 3: Residue
3-October-2016 Micro-Mapping Model of Computation 26Made available under EPL 1.0
Mapping with all dependencies
3-October-2016 Micro-Mapping Model of Computation 27Made available under EPL 1.0
Scheduled Mapping,
pruned dependencies
3-October-2016 Micro-Mapping Model of Computation 28Made available under EPL 1.0
Overview static schedule
2 Mappings
=> 1 Root, 4 communication buffers, 8 Micro-Mappings,
TODO post-scheduling merge
3-October-2016 Micro-Mapping Model of Computation 29Made available under EPL 1.0
Doubly Linked List Reversal Results
3-October-2016 Micro-Mapping Model of Computation 30Made available under EPL 1.0
Eclipse QVTd Status
0.12.0 (Mars - June 2015)
QVTi execution (code generated or interpreted)
0.13.0 (Neon - June 2016)
preliminary QVTc / QVTr execution
low quality - research only
no incremental / check / in-place facilities
no debugger
minimal documentation / examples
1.0.0 (Oxygen - June 2017)
first release functionality (? with UMLX ?)
3-October-2016 Micro-Mapping Model of Computation 31Made available under EPL 1.0
Conclusion
Do things in the right order
Mappings declare the order
Micro-Mappings can be ordered (graphically)
First implementation of the QVTc specification.
First optimized implementation of QVTr.
First direct code generator for model
transformations.
Thirty fold speed-up.
Many more optimizations to do.

Contenu connexe

Tendances

Simulating Large-scale Aggregate MASs with Alchemist and Scala
Simulating Large-scale Aggregate MASs with Alchemist and ScalaSimulating Large-scale Aggregate MASs with Alchemist and Scala
Simulating Large-scale Aggregate MASs with Alchemist and ScalaDanilo Pianini
 
Scilab Modelica conference 20150921
Scilab Modelica conference 20150921Scilab Modelica conference 20150921
Scilab Modelica conference 20150921Scilab
 
Massif - the love child of Matlab Simulink and Eclipse
Massif - the love child of Matlab Simulink and EclipseMassif - the love child of Matlab Simulink and Eclipse
Massif - the love child of Matlab Simulink and EclipseÁkos Horváth
 
A Lightweight Instruction Scheduling Algorithm For Just In Time Compiler
A Lightweight Instruction Scheduling Algorithm For Just In Time CompilerA Lightweight Instruction Scheduling Algorithm For Just In Time Compiler
A Lightweight Instruction Scheduling Algorithm For Just In Time Compilerkeanumit
 
Integrative Parallel Programming in HPC
Integrative Parallel Programming in HPCIntegrative Parallel Programming in HPC
Integrative Parallel Programming in HPCVictor Eijkhout
 
Inside LoLA - Experiences from building a state space tool for place transiti...
Inside LoLA - Experiences from building a state space tool for place transiti...Inside LoLA - Experiences from building a state space tool for place transiti...
Inside LoLA - Experiences from building a state space tool for place transiti...Universität Rostock
 
Monitoring Flink with Prometheus
Monitoring Flink with PrometheusMonitoring Flink with Prometheus
Monitoring Flink with PrometheusMaximilian Bode
 
Reactive programming with RxSwift
Reactive programming with RxSwiftReactive programming with RxSwift
Reactive programming with RxSwiftOleksandr Stepanov
 
On The Evolution of CAEX: A Language Engineering Perspective
On The Evolution of CAEX: A Language Engineering PerspectiveOn The Evolution of CAEX: A Language Engineering Perspective
On The Evolution of CAEX: A Language Engineering PerspectiveLuca Berardinelli
 
G-TAD: Sub-Graph Localization for Temporal Action Detection
G-TAD: Sub-Graph Localization for Temporal Action DetectionG-TAD: Sub-Graph Localization for Temporal Action Detection
G-TAD: Sub-Graph Localization for Temporal Action DetectionMengmeng Xu
 
Modelica Tutorial with PowerSystems: A tutorial for Modelica simulation
Modelica Tutorial with PowerSystems: A tutorial for Modelica simulationModelica Tutorial with PowerSystems: A tutorial for Modelica simulation
Modelica Tutorial with PowerSystems: A tutorial for Modelica simulation智哉 今西
 
Cilk - An Efficient Multithreaded Runtime System
Cilk - An Efficient Multithreaded Runtime SystemCilk - An Efficient Multithreaded Runtime System
Cilk - An Efficient Multithreaded Runtime SystemShareek Ahamed
 
Flink Forward Berlin 2017: Andreas Kunft - Efficiently executing R Dataframes...
Flink Forward Berlin 2017: Andreas Kunft - Efficiently executing R Dataframes...Flink Forward Berlin 2017: Andreas Kunft - Efficiently executing R Dataframes...
Flink Forward Berlin 2017: Andreas Kunft - Efficiently executing R Dataframes...Flink Forward
 
Apache Flink Training: System Overview
Apache Flink Training: System OverviewApache Flink Training: System Overview
Apache Flink Training: System OverviewFlink Forward
 
Flink Streaming Berlin Meetup
Flink Streaming Berlin MeetupFlink Streaming Berlin Meetup
Flink Streaming Berlin MeetupMárton Balassi
 

Tendances (20)

Java 8 streams
Java 8 streams Java 8 streams
Java 8 streams
 
Simulating Large-scale Aggregate MASs with Alchemist and Scala
Simulating Large-scale Aggregate MASs with Alchemist and ScalaSimulating Large-scale Aggregate MASs with Alchemist and Scala
Simulating Large-scale Aggregate MASs with Alchemist and Scala
 
Nexmark with beam
Nexmark with beamNexmark with beam
Nexmark with beam
 
Scilab Modelica conference 20150921
Scilab Modelica conference 20150921Scilab Modelica conference 20150921
Scilab Modelica conference 20150921
 
Massif - the love child of Matlab Simulink and Eclipse
Massif - the love child of Matlab Simulink and EclipseMassif - the love child of Matlab Simulink and Eclipse
Massif - the love child of Matlab Simulink and Eclipse
 
A Lightweight Instruction Scheduling Algorithm For Just In Time Compiler
A Lightweight Instruction Scheduling Algorithm For Just In Time CompilerA Lightweight Instruction Scheduling Algorithm For Just In Time Compiler
A Lightweight Instruction Scheduling Algorithm For Just In Time Compiler
 
Integrative Parallel Programming in HPC
Integrative Parallel Programming in HPCIntegrative Parallel Programming in HPC
Integrative Parallel Programming in HPC
 
Scilab
ScilabScilab
Scilab
 
Inside LoLA - Experiences from building a state space tool for place transiti...
Inside LoLA - Experiences from building a state space tool for place transiti...Inside LoLA - Experiences from building a state space tool for place transiti...
Inside LoLA - Experiences from building a state space tool for place transiti...
 
Monitoring Flink with Prometheus
Monitoring Flink with PrometheusMonitoring Flink with Prometheus
Monitoring Flink with Prometheus
 
Reactive programming with RxSwift
Reactive programming with RxSwiftReactive programming with RxSwift
Reactive programming with RxSwift
 
On The Evolution of CAEX: A Language Engineering Perspective
On The Evolution of CAEX: A Language Engineering PerspectiveOn The Evolution of CAEX: A Language Engineering Perspective
On The Evolution of CAEX: A Language Engineering Perspective
 
G-TAD: Sub-Graph Localization for Temporal Action Detection
G-TAD: Sub-Graph Localization for Temporal Action DetectionG-TAD: Sub-Graph Localization for Temporal Action Detection
G-TAD: Sub-Graph Localization for Temporal Action Detection
 
Modelica Tutorial with PowerSystems: A tutorial for Modelica simulation
Modelica Tutorial with PowerSystems: A tutorial for Modelica simulationModelica Tutorial with PowerSystems: A tutorial for Modelica simulation
Modelica Tutorial with PowerSystems: A tutorial for Modelica simulation
 
Cilk - An Efficient Multithreaded Runtime System
Cilk - An Efficient Multithreaded Runtime SystemCilk - An Efficient Multithreaded Runtime System
Cilk - An Efficient Multithreaded Runtime System
 
Partial Compilers
Partial CompilersPartial Compilers
Partial Compilers
 
Flink Forward Berlin 2017: Andreas Kunft - Efficiently executing R Dataframes...
Flink Forward Berlin 2017: Andreas Kunft - Efficiently executing R Dataframes...Flink Forward Berlin 2017: Andreas Kunft - Efficiently executing R Dataframes...
Flink Forward Berlin 2017: Andreas Kunft - Efficiently executing R Dataframes...
 
Apache Flink Training: System Overview
Apache Flink Training: System OverviewApache Flink Training: System Overview
Apache Flink Training: System Overview
 
Flink Streaming Berlin Meetup
Flink Streaming Berlin MeetupFlink Streaming Berlin Meetup
Flink Streaming Berlin Meetup
 
Java Programming
Java ProgrammingJava Programming
Java Programming
 

En vedette

At Last an OCL Debugger
At Last an OCL DebuggerAt Last an OCL Debugger
At Last an OCL DebuggerEdward Willink
 
Safe navigation in OCL
Safe navigation in OCLSafe navigation in OCL
Safe navigation in OCLEdward Willink
 
01072013 e governance
01072013 e governance01072013 e governance
01072013 e governancebharati k
 
Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire Erradi Mohamed
 
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware
 
Model Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the artModel Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the artTom Mens
 
Developpement mobile vs open source
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open sourceKorteby Farouk
 
La & edm in practice
La & edm in practiceLa & edm in practice
La & edm in practicebharati k
 
Embedded OCL Integration and Debugging
Embedded OCL Integration and DebuggingEmbedded OCL Integration and Debugging
Embedded OCL Integration and DebuggingEdward Willink
 
Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...Etienne Juliot
 
mis
mismis
misISIG
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de donnéesISIG
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal PerspectiveEdward Willink
 
Vbisigk
VbisigkVbisigk
VbisigkISIG
 
OCL Integration and Code Generation
OCL Integration and Code GenerationOCL Integration and Code Generation
OCL Integration and Code GenerationEdward Willink
 
SysML adoption in France
SysML adoption in FranceSysML adoption in France
SysML adoption in FrancePascal Roques
 
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...OCCIware
 

En vedette (20)

At Last an OCL Debugger
At Last an OCL DebuggerAt Last an OCL Debugger
At Last an OCL Debugger
 
Safe navigation in OCL
Safe navigation in OCLSafe navigation in OCL
Safe navigation in OCL
 
01072013 e governance
01072013 e governance01072013 e governance
01072013 e governance
 
Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire
 
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
 
Model Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the artModel Transformation: A survey of the state of the art
Model Transformation: A survey of the state of the art
 
Aligning OCL and UML
Aligning OCL and UMLAligning OCL and UML
Aligning OCL and UML
 
Developpement mobile vs open source
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open source
 
La & edm in practice
La & edm in practiceLa & edm in practice
La & edm in practice
 
Embedded OCL Integration and Debugging
Embedded OCL Integration and DebuggingEmbedded OCL Integration and Debugging
Embedded OCL Integration and Debugging
 
Mix
MixMix
Mix
 
Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...
 
mis
mismis
mis
 
OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...OCCIware: extensible and standard-based XaaS platform to manage everything in...
OCCIware: extensible and standard-based XaaS platform to manage everything in...
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de données
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal Perspective
 
Vbisigk
VbisigkVbisigk
Vbisigk
 
OCL Integration and Code Generation
OCL Integration and Code GenerationOCL Integration and Code Generation
OCL Integration and Code Generation
 
SysML adoption in France
SysML adoption in FranceSysML adoption in France
SysML adoption in France
 
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
 

Similaire à Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of Computation

Efficient Model Partitioning for Distributed Model Transformations
Efficient Model Partitioning for Distributed Model TransformationsEfficient Model Partitioning for Distributed Model Transformations
Efficient Model Partitioning for Distributed Model TransformationsAmine Benelallam
 
Pretzel: optimized Machine Learning framework for low-latency and high throug...
Pretzel: optimized Machine Learning framework for low-latency and high throug...Pretzel: optimized Machine Learning framework for low-latency and high throug...
Pretzel: optimized Machine Learning framework for low-latency and high throug...NECST Lab @ Politecnico di Milano
 
Control system Lab record
Control system Lab record Control system Lab record
Control system Lab record Yuvraj Singh
 
ROS 2 AI Integration Working Group 1: ALMA, SustainML & ROS 2 use case
ROS 2 AI Integration Working Group 1: ALMA, SustainML & ROS 2 use case ROS 2 AI Integration Working Group 1: ALMA, SustainML & ROS 2 use case
ROS 2 AI Integration Working Group 1: ALMA, SustainML & ROS 2 use case eProsima
 
Prospects for CMB lensing-galaxy clustering cross-correlations and modeling b...
Prospects for CMB lensing-galaxy clustering cross-correlations and modeling b...Prospects for CMB lensing-galaxy clustering cross-correlations and modeling b...
Prospects for CMB lensing-galaxy clustering cross-correlations and modeling b...Marcel Schmittfull
 
MODELLING, ANALYSIS AND SIMULATION OF DYNAMIC SYSTEMS USING CONTROL TECHNIQUE...
MODELLING, ANALYSIS AND SIMULATION OF DYNAMIC SYSTEMS USING CONTROL TECHNIQUE...MODELLING, ANALYSIS AND SIMULATION OF DYNAMIC SYSTEMS USING CONTROL TECHNIQUE...
MODELLING, ANALYSIS AND SIMULATION OF DYNAMIC SYSTEMS USING CONTROL TECHNIQUE...shivamverma394
 
PRETZEL: Opening the Black Box of Machine Learning Prediction Serving Systems
PRETZEL: Opening the Black Box of Machine Learning Prediction Serving SystemsPRETZEL: Opening the Black Box of Machine Learning Prediction Serving Systems
PRETZEL: Opening the Black Box of Machine Learning Prediction Serving SystemsNECST Lab @ Politecnico di Milano
 
MATLAB Thesis Projects
MATLAB Thesis ProjectsMATLAB Thesis Projects
MATLAB Thesis ProjectsPhdtopiccom
 
Adam_Mcconnell_SPR11_v3
Adam_Mcconnell_SPR11_v3Adam_Mcconnell_SPR11_v3
Adam_Mcconnell_SPR11_v3Adam McConnell
 
Fast and Reliable Apache Spark SQL Engine
Fast and Reliable Apache Spark SQL EngineFast and Reliable Apache Spark SQL Engine
Fast and Reliable Apache Spark SQL EngineDatabricks
 
OCL - The Bigger Picture
OCL - The Bigger PictureOCL - The Bigger Picture
OCL - The Bigger PictureEdward Willink
 
Raising Abstraction in Timing Analysis for Vehicular Embedded Systems through...
Raising Abstraction in Timing Analysis for Vehicular Embedded Systems through...Raising Abstraction in Timing Analysis for Vehicular Embedded Systems through...
Raising Abstraction in Timing Analysis for Vehicular Embedded Systems through...Alessio Bucaioni
 
Handling Uncertainty in Automatically Generated Implementation Models in the ...
Handling Uncertainty in Automatically Generated Implementation Models in the ...Handling Uncertainty in Automatically Generated Implementation Models in the ...
Handling Uncertainty in Automatically Generated Implementation Models in the ...Alessio Bucaioni
 
Matlab Projects UK
Matlab Projects UKMatlab Projects UK
Matlab Projects UKPhdtopiccom
 
FOSDEM 2019: M3, Prometheus and Graphite with metrics and monitoring in an in...
FOSDEM 2019: M3, Prometheus and Graphite with metrics and monitoring in an in...FOSDEM 2019: M3, Prometheus and Graphite with metrics and monitoring in an in...
FOSDEM 2019: M3, Prometheus and Graphite with metrics and monitoring in an in...Rob Skillington
 
From Prototyping to Deployment at Scale with R and sparklyr with Kevin Kuo
From Prototyping to Deployment at Scale with R and sparklyr with Kevin KuoFrom Prototyping to Deployment at Scale with R and sparklyr with Kevin Kuo
From Prototyping to Deployment at Scale with R and sparklyr with Kevin KuoDatabricks
 

Similaire à Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of Computation (20)

The google MapReduce
The google MapReduceThe google MapReduce
The google MapReduce
 
Efficient Model Partitioning for Distributed Model Transformations
Efficient Model Partitioning for Distributed Model TransformationsEfficient Model Partitioning for Distributed Model Transformations
Efficient Model Partitioning for Distributed Model Transformations
 
Pretzel: optimized Machine Learning framework for low-latency and high throug...
Pretzel: optimized Machine Learning framework for low-latency and high throug...Pretzel: optimized Machine Learning framework for low-latency and high throug...
Pretzel: optimized Machine Learning framework for low-latency and high throug...
 
CityEngine-OpenDS
CityEngine-OpenDSCityEngine-OpenDS
CityEngine-OpenDS
 
Control system Lab record
Control system Lab record Control system Lab record
Control system Lab record
 
ROS 2 AI Integration Working Group 1: ALMA, SustainML & ROS 2 use case
ROS 2 AI Integration Working Group 1: ALMA, SustainML & ROS 2 use case ROS 2 AI Integration Working Group 1: ALMA, SustainML & ROS 2 use case
ROS 2 AI Integration Working Group 1: ALMA, SustainML & ROS 2 use case
 
O Matrix Overview
O Matrix OverviewO Matrix Overview
O Matrix Overview
 
Prospects for CMB lensing-galaxy clustering cross-correlations and modeling b...
Prospects for CMB lensing-galaxy clustering cross-correlations and modeling b...Prospects for CMB lensing-galaxy clustering cross-correlations and modeling b...
Prospects for CMB lensing-galaxy clustering cross-correlations and modeling b...
 
MODELLING, ANALYSIS AND SIMULATION OF DYNAMIC SYSTEMS USING CONTROL TECHNIQUE...
MODELLING, ANALYSIS AND SIMULATION OF DYNAMIC SYSTEMS USING CONTROL TECHNIQUE...MODELLING, ANALYSIS AND SIMULATION OF DYNAMIC SYSTEMS USING CONTROL TECHNIQUE...
MODELLING, ANALYSIS AND SIMULATION OF DYNAMIC SYSTEMS USING CONTROL TECHNIQUE...
 
PRETZEL: Opening the Black Box of Machine Learning Prediction Serving Systems
PRETZEL: Opening the Black Box of Machine Learning Prediction Serving SystemsPRETZEL: Opening the Black Box of Machine Learning Prediction Serving Systems
PRETZEL: Opening the Black Box of Machine Learning Prediction Serving Systems
 
MATLAB Thesis Projects
MATLAB Thesis ProjectsMATLAB Thesis Projects
MATLAB Thesis Projects
 
Adam_Mcconnell_SPR11_v3
Adam_Mcconnell_SPR11_v3Adam_Mcconnell_SPR11_v3
Adam_Mcconnell_SPR11_v3
 
Fast and Reliable Apache Spark SQL Engine
Fast and Reliable Apache Spark SQL EngineFast and Reliable Apache Spark SQL Engine
Fast and Reliable Apache Spark SQL Engine
 
OCL - The Bigger Picture
OCL - The Bigger PictureOCL - The Bigger Picture
OCL - The Bigger Picture
 
Raising Abstraction in Timing Analysis for Vehicular Embedded Systems through...
Raising Abstraction in Timing Analysis for Vehicular Embedded Systems through...Raising Abstraction in Timing Analysis for Vehicular Embedded Systems through...
Raising Abstraction in Timing Analysis for Vehicular Embedded Systems through...
 
Matopt
MatoptMatopt
Matopt
 
Handling Uncertainty in Automatically Generated Implementation Models in the ...
Handling Uncertainty in Automatically Generated Implementation Models in the ...Handling Uncertainty in Automatically Generated Implementation Models in the ...
Handling Uncertainty in Automatically Generated Implementation Models in the ...
 
Matlab Projects UK
Matlab Projects UKMatlab Projects UK
Matlab Projects UK
 
FOSDEM 2019: M3, Prometheus and Graphite with metrics and monitoring in an in...
FOSDEM 2019: M3, Prometheus and Graphite with metrics and monitoring in an in...FOSDEM 2019: M3, Prometheus and Graphite with metrics and monitoring in an in...
FOSDEM 2019: M3, Prometheus and Graphite with metrics and monitoring in an in...
 
From Prototyping to Deployment at Scale with R and sparklyr with Kevin Kuo
From Prototyping to Deployment at Scale with R and sparklyr with Kevin KuoFrom Prototyping to Deployment at Scale with R and sparklyr with Kevin Kuo
From Prototyping to Deployment at Scale with R and sparklyr with Kevin Kuo
 

Plus de Edward Willink

OCL Visualization A Reality Check
OCL Visualization A Reality CheckOCL Visualization A Reality Check
OCL Visualization A Reality CheckEdward Willink
 
OCL 2019 Keynote Retrospective and Prospective
OCL 2019 Keynote Retrospective and ProspectiveOCL 2019 Keynote Retrospective and Prospective
OCL 2019 Keynote Retrospective and ProspectiveEdward Willink
 
A text model - Use your favourite M2M for M2T
A text model - Use your favourite M2M for M2TA text model - Use your favourite M2M for M2T
A text model - Use your favourite M2M for M2TEdward Willink
 
Commutative Short Circuit Operators
Commutative Short Circuit OperatorsCommutative Short Circuit Operators
Commutative Short Circuit OperatorsEdward Willink
 
Deterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL CollectionsDeterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL CollectionsEdward Willink
 
The Importance of Opposites
The Importance of OppositesThe Importance of Opposites
The Importance of OppositesEdward Willink
 
OCL Specification Status
OCL Specification StatusOCL Specification Status
OCL Specification StatusEdward Willink
 
Yet Another Three QVT Languages
Yet Another Three QVT LanguagesYet Another Three QVT Languages
Yet Another Three QVT LanguagesEdward Willink
 
Fast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast QueriesFast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast QueriesEdward Willink
 
Modeling the OCL Standard Library
Modeling the OCL Standard LibraryModeling the OCL Standard Library
Modeling the OCL Standard LibraryEdward Willink
 
Enrich Your Models With OCL
Enrich Your Models With OCLEnrich Your Models With OCL
Enrich Your Models With OCLEdward Willink
 
Re-engineering Eclipse MDT/OCL for Xtext
Re-engineering Eclipse MDT/OCL for XtextRe-engineering Eclipse MDT/OCL for Xtext
Re-engineering Eclipse MDT/OCL for XtextEdward Willink
 
Enriching Your Models with OCL
Enriching Your Models with OCLEnriching Your Models with OCL
Enriching Your Models with OCLEdward Willink
 

Plus de Edward Willink (20)

An OCL Map Type
An OCL Map TypeAn OCL Map Type
An OCL Map Type
 
OCL Visualization A Reality Check
OCL Visualization A Reality CheckOCL Visualization A Reality Check
OCL Visualization A Reality Check
 
OCL 2019 Keynote Retrospective and Prospective
OCL 2019 Keynote Retrospective and ProspectiveOCL 2019 Keynote Retrospective and Prospective
OCL 2019 Keynote Retrospective and Prospective
 
A text model - Use your favourite M2M for M2T
A text model - Use your favourite M2M for M2TA text model - Use your favourite M2M for M2T
A text model - Use your favourite M2M for M2T
 
Shadow Objects
Shadow ObjectsShadow Objects
Shadow Objects
 
Commutative Short Circuit Operators
Commutative Short Circuit OperatorsCommutative Short Circuit Operators
Commutative Short Circuit Operators
 
Deterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL CollectionsDeterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL Collections
 
The Importance of Opposites
The Importance of OppositesThe Importance of Opposites
The Importance of Opposites
 
OCL Specification Status
OCL Specification StatusOCL Specification Status
OCL Specification Status
 
The OCLforUML Profile
The OCLforUML ProfileThe OCLforUML Profile
The OCLforUML Profile
 
OCL 2.4. (... 2.5)
OCL 2.4. (... 2.5)OCL 2.4. (... 2.5)
OCL 2.4. (... 2.5)
 
OCL 2.5 plans
OCL 2.5 plansOCL 2.5 plans
OCL 2.5 plans
 
Yet Another Three QVT Languages
Yet Another Three QVT LanguagesYet Another Three QVT Languages
Yet Another Three QVT Languages
 
UMLX and QVT and ATL
UMLX and QVT and ATLUMLX and QVT and ATL
UMLX and QVT and ATL
 
Fast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast QueriesFast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast Queries
 
Eclipse OCL Summary
Eclipse OCL SummaryEclipse OCL Summary
Eclipse OCL Summary
 
Modeling the OCL Standard Library
Modeling the OCL Standard LibraryModeling the OCL Standard Library
Modeling the OCL Standard Library
 
Enrich Your Models With OCL
Enrich Your Models With OCLEnrich Your Models With OCL
Enrich Your Models With OCL
 
Re-engineering Eclipse MDT/OCL for Xtext
Re-engineering Eclipse MDT/OCL for XtextRe-engineering Eclipse MDT/OCL for Xtext
Re-engineering Eclipse MDT/OCL for Xtext
 
Enriching Your Models with OCL
Enriching Your Models with OCLEnriching Your Models with OCL
Enriching Your Models with OCL
 

Dernier

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 

Dernier (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of Computation

  • 1. Made available under EPL 1.0 Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of Computation Edward D. Willink Willink Transformations Ltd Eclipse Foundation MMT Component co-Lead OCL Project Lead QVTd Project Lead QVTo Committer OMG (Model Driven Solutions) OCL 2.3, 2.4, 2.5 RTF Chair QVT 1.2, 1.3, 1.4 RTF Chair EXE 2016 @ MODELS 2016 3rd October 2016
  • 2. 3-October-2016 Micro-Mapping Model of Computation 2Made available under EPL 1.0 Overview QVT Background Eclipse QVTd architecture Do things in the right order imperative/declarative Intra-mapping scheduling Example results Eclipse QVTc/QVTr status Conclusion
  • 3. 3-October-2016 Micro-Mapping Model of Computation 3Made available under EPL 1.0 QVT Background Query/View/Transformation 2002: standard transformation language RFP OMG specification - slow to mature ATL took a pragmatic short cut 2005: Three language compromise QVTo (Operational Mappings) - Imperative 2 1 good implementations : SmartQVT, Eclipse QVTo QVTr (Relational) - Declarative, rich 2 0 poor implementations : ModelMorf, Medini QVT QVTc (Core) - Declarative, simple notional common core, no implementations Eclipse QVTd: QVTc/QVTr editors
  • 4. 3-October-2016 Micro-Mapping Model of Computation 4Made available under EPL 1.0 Eclipse QVTd Tx Chain Architecture QVTr2QVTc - nominally as in QVT specification QVTc2QVTu ⇒ Unidirectional (remove reverse bloat) QVTu2QVTm ⇒ Minimal (remove refinement etc) QVTm2QVTs ⇒ Create graphical form QVTs2QVTs ⇒ Optimize/schedule graphical form QVTs2QVTi ⇒ Imperative executable form VMNew Intermediate LanguagesQVT Declarative QVTr QVTc QVTuQVTc QVTm QVTi OCL UML ALF QVTo ATL ETL composition program-to-program transformation XYZ language representation Java QVTi +QVTs QVTs Henshin UMLX
  • 5. 3-October-2016 Micro-Mapping Model of Computation 5Made available under EPL 1.0 Correct Execution 1 No global state => Object Orientation No naughty writes => Static Single Assignment impractical in the large No naughty writes => Functional Programming new system, inefficient in the large But multiple threads complex object state evolving object state
  • 6. 3-October-2016 Micro-Mapping Model of Computation 6Made available under EPL 1.0 Correct Execution 2 No naughty reads every property read occurs after its property write Functions - f(a,b,c) { return a.x + g(b.y.z, c); } parameters easy to analyze - a, b, c references hard to analyze - g(b.y.z, c) => secret undeclared inputs, manual discipline Declarative Mappings/Relations/Rules same problem; global analysis necessary/possible
  • 7. 3-October-2016 Micro-Mapping Model of Computation 7Made available under EPL 1.0 Imperative Transformations Explicit control statements Manual programming hopefully good may be bad Tooling hopefully good may be bad
  • 8. 3-October-2016 Micro-Mapping Model of Computation 8Made available under EPL 1.0 Declarative Transformations No control statements Manual programming different approach, may be good/bad Tooling must discover a control strategy hopefully good may be VERY BAD
  • 9. 3-October-2016 Micro-Mapping Model of Computation 9Made available under EPL 1.0 Naive Polling Schedule Retry loop - loop until all work done Mapping loop - loop over all possible mappings Object loops - multi-dimensional loop for all object/argument pairings Compatibility guard - if object/argument pairings are type compatible Repetition guard - if this is not a repeated execution Validity guard - if all input objects are ready Execute mapping for given object/argument pairings Create a memento of the successful execution Works for any declarative transformation Hideously inefficient - VERY VERY BAD Optimization goal - a statically ordered schedule
  • 10. 3-October-2016 Micro-Mapping Model of Computation 10Made available under EPL 1.0 Doubly Linked List Reversal Example
  • 11. 3-October-2016 Micro-Mapping Model of Computation 11Made available under EPL 1.0 ATL solution
  • 12. 3-October-2016 Micro-Mapping Model of Computation 12Made available under EPL 1.0 QVTr solution
  • 13. 3-October-2016 Micro-Mapping Model of Computation 13Made available under EPL 1.0 Underlying (ATL) functionality resolveTemp
  • 14. 3-October-2016 Micro-Mapping Model of Computation 14Made available under EPL 1.0 Underlying QVTr in QVTc functionality
  • 15. 3-October-2016 Micro-Mapping Model of Computation 15Made available under EPL 1.0 Mapping Diagram Artefacts
  • 16. 3-October-2016 Micro-Mapping Model of Computation 16Made available under EPL 1.0 Mapping MoC Truth - after execution to-1 relationships => 1:1 group of objects => HEAD from which all 1:1 objects can be reached
  • 17. 3-October-2016 Micro-Mapping Model of Computation 17Made available under EPL 1.0 Dependency Conflicts REALIZE before PREDICATE
  • 18. 3-October-2016 Micro-Mapping Model of Computation 21Made available under EPL 1.0 Declarative Transformation Execution Transformation specifies numerous 'final' truths relationships between output and input model elements Execution must proceed step by step permutations of input objects that match mappings compute step sequence at compile time Mapping good / useful unit of programming relevant relationships for a few types bad execution step deadlocks between relationships
  • 19. 3-October-2016 Micro-Mapping Model of Computation 22Made available under EPL 1.0 Micro-Mapping Executable step in a declarative execution no deadlocks between steps Primitive Micro-Mapping many dependencies to be satisfied single action - object creation / property assignment Composite Micro-Mapping merge primitives with identical dependencies multiple actions
  • 20. 3-October-2016 Micro-Mapping Model of Computation 23Made available under EPL 1.0 Primitive Micro-Mappings One GREEN action at a time once CYAN predicates satisfied
  • 21. 3-October-2016 Micro-Mapping Model of Computation 24Made available under EPL 1.0 Speculation All Primitive Micro-Mappings share predicate Acyclic dependency resolveable at run-time Cyclic dependency insoluble need to speculate defer predicates ATL ignores inter-mapping predicates works for typical transformations Eclipse QVTd ignores predicates wrt trace creation checks predicates wrt output objects/properties
  • 22. 3-October-2016 Micro-Mapping Model of Computation 25Made available under EPL 1.0 Speculation Partitioning Overall 1: Speculating 2: Speculated 3: Residue
  • 23. 3-October-2016 Micro-Mapping Model of Computation 26Made available under EPL 1.0 Mapping with all dependencies
  • 24. 3-October-2016 Micro-Mapping Model of Computation 27Made available under EPL 1.0 Scheduled Mapping, pruned dependencies
  • 25. 3-October-2016 Micro-Mapping Model of Computation 28Made available under EPL 1.0 Overview static schedule 2 Mappings => 1 Root, 4 communication buffers, 8 Micro-Mappings, TODO post-scheduling merge
  • 26. 3-October-2016 Micro-Mapping Model of Computation 29Made available under EPL 1.0 Doubly Linked List Reversal Results
  • 27. 3-October-2016 Micro-Mapping Model of Computation 30Made available under EPL 1.0 Eclipse QVTd Status 0.12.0 (Mars - June 2015) QVTi execution (code generated or interpreted) 0.13.0 (Neon - June 2016) preliminary QVTc / QVTr execution low quality - research only no incremental / check / in-place facilities no debugger minimal documentation / examples 1.0.0 (Oxygen - June 2017) first release functionality (? with UMLX ?)
  • 28. 3-October-2016 Micro-Mapping Model of Computation 31Made available under EPL 1.0 Conclusion Do things in the right order Mappings declare the order Micro-Mappings can be ordered (graphically) First implementation of the QVTc specification. First optimized implementation of QVTr. First direct code generator for model transformations. Thirty fold speed-up. Many more optimizations to do.