SlideShare a Scribd company logo
1 of 26
Made available under EPL 1.0
Optimized declarative transformation
First Eclipse QVTc results
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
BigMDE @ STAF 2016
8th July 2016
8-July-2016 First Eclipse QVTc results 2Made available under EPL 1.0
Overview
QVT Background
Eclipse QVTd architecture
Execution time
imperative/declarative
Intra-mapping optimization
Inter-mapping optimization
Eclipse QVTc results
Eclipse QVTc/QVTr status
Conclusion
8-July-2016 First Eclipse QVTc results 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
8-July-2016 First Eclipse QVTc results 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)
QVTm2QVTp ⇒ Partitioned to avoid deadlocks
QVTp2QVTs ⇒ Schedulable graphical form
QVTs2QVTi ⇒ Imperative executable form
VMNew Intermedate LanguagesQVT Declarative
QVTr QVTc QVTuQVTc QVTm QVTi
OCL
UML
ALF
QVTo
ATL
ETL composition
program-to-program
transformation
XYZ language representation
Java
QVTi +QVTp QVTs
8-July-2016 First Eclipse QVTc results 5Made available under EPL 1.0
Execution time considerations
Approximate execution time: (W.N.R.L.C)
A
W - the Workload - the number of data elements to
be processed
N - the Necessary computations per data element
R - the memory Representation access overhead
L - the programming Language overhead
C - the Control overhead
A - the Algorithmic overhead
8-July-2016 First Eclipse QVTc results 6Made available under EPL 1.0
Imperative Transformations
Explicit control statements
Manual programming
hopefully good
may be bad
Tooling
hopefully good
may be bad
8-July-2016 First Eclipse QVTc results 7Made 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
8-July-2016 First Eclipse QVTc results 8Made 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
8-July-2016 First Eclipse QVTc results 9Made available under EPL 1.0
Declarative Optimization
Micro-mapping primitive
partial mapping that avoids dependency deadlocks
Intra-micro-mapping
reduce dimensionality of matching input object search
3-dimensional search awkward, cubic performance
1-dimensional search is simple loop
Inter-micro-mapping
invoke micro-mappings in sensible order
mostly static schedule
efficient dynamic fall-back schedule for residue
8-July-2016 First Eclipse QVTc results 10Made available under EPL 1.0
QVTc Mapping Areas and Patterns
Left/Middle/Right Input/Trace/Output domains
Guard/Bottom predicate/action patterns
Just like a triple graph, but Middle is reified
Left Guard Middle Guard Right GuardLeft Guard
Left Guard Middle Bottom Right BottomLeft Bottom
8-July-2016 First Eclipse QVTc results 11Made available under EPL 1.0
Intra-mapping Example - QVTp
Left(uml)/Right(rdbms) Hand Patterns
variables, (predicates, assignments)
Middle Pattern
variables, predicates, assignments
8-July-2016 First Eclipse QVTc results 12Made available under EPL 1.0
Example - LHS
Left Hand 'Object' Pattern
For each p that is-a Package
For each c that is-a Class
For each name that is-a String
provided c.namespace = p
Class objects must be non-null
(provided c.name = name)
DataType objects may be null
8-July-2016 First Eclipse QVTc results 13Made available under EPL 1.0
Example - RHS
Right Hand 'Object' Pattern
Create objects
s, pk, t, pc
Assign relationships
owner, owner, schema
Dashed: Compute set
keys
Assign attributes
kind, kind, type, keys
8-July-2016 First Eclipse QVTc results 14Made available under EPL 1.0
Example - Middle Elements
QVTc: Explicit Trace Objects - c2t, p2s
OCL: all object navigations are bidirectional
8-July-2016 First Eclipse QVTc results 15Made available under EPL 1.0
Example - Dependency Analysis
BLACK - constant
BLUE - loaded from input
CYAN - created/assigned elsewhere
GREEN - created/assigned here
8-July-2016 First Eclipse QVTc results 16Made available under EPL 1.0
Example - Multiplicity Analysis
Pattern defines the result truth
to-1 multiplicities the same truth
Ignore non-to-1 relationships
everything navigable by to-1 from c:Class
8-July-2016 First Eclipse QVTc results 17Made available under EPL 1.0
Intra-Mapping Optimization
Example
naively 3-dimensional {Package, Class, String}
optimized 1-dimensional {Class} and 2 navigations
Empirical observation
about 90% of mappings can be single input
multi-input mappings have quadratic/worse execution
Work in progress
nearly all multi-input mappings can be reduced to
single input and local loops
only Cartesian problems need Cartesian execution
8-July-2016 First Eclipse QVTc results 18Made available under EPL 1.0
Inter-Mapping optimizations
Inter-mappings have simple dependency rule
CYAN elements must be produced elsewhere
elements are produced as GREEN elements
Global analysis: GREEN before CYAN
Complications
multiple GREEN producers
multiple CYAN consumers
consumption of derived types
8-July-2016 First Eclipse QVTc results 19Made available under EPL 1.0
Full UML2RDBMS schedule
8-July-2016 First Eclipse QVTc results 20Made available under EPL 1.0
Top of UML2RDBMS schedule
Solid edges
passed inputs
Dashed edges
dependencies
required inputs
locally renavigated
Ellipses
communication buffers
8-July-2016 First Eclipse QVTc results 21Made available under EPL 1.0
Recursion in UML2RDBMS schedule
Static integer schedule slots
Up arrows recurse - multiple schedule slots
run-time speculative / retry execution
8-July-2016 First Eclipse QVTc results 22Made available under EPL 1.0
UML2RDBMS overall
20 micro-mappings
15 reduced to single input - linear performance
5 with two inputs - quadratic performance
when associations in use
work in progress use local loops - linear wrt output
No point showing fixable quadratic performance
use Families2Persons - linear performance
Results
8-July-2016 First Eclipse QVTc results 23Made available under EPL 1.0
Families2Persons Results
8-July-2016 First Eclipse QVTc results 24Made available under EPL 1.0
Families2Persons Size Results
Failing at/below 10,000,000 elements in 4 GB.
400 Bytes per element!
50 'things' 8 bytes per thing with 64 bit CPU
Input/trace/output objects, String names
44 bytes per HashMap$Entry node
8-July-2016 First Eclipse QVTc results 25Made 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 ?)
8-July-2016 First Eclipse QVTc results 26Made available under EPL 1.0
Conclusion
First implementation of the QVTc specification.
First direct code generator for model
transformations.
Thirty fold speed-up.
Graph presentation of metamodel and
dependency analyses tames the naive
inefficiencies of a declarative schedule.
Many more optimizations to do, and ... QVTr.

More Related Content

What's hot

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
 
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
 
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
 
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
 
Simulation Projects in Matlab
Simulation Projects in MatlabSimulation Projects in Matlab
Simulation Projects in MatlabPhdtopiccom
 
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智哉 今西
 
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
 
Htn Planning In A Tool Supported
Htn Planning In A Tool SupportedHtn Planning In A Tool Supported
Htn Planning In A Tool Supportedahmad bassiouny
 
Deep Reality Simulation for Automated Poacher Detection with Mark Hamilton an...
Deep Reality Simulation for Automated Poacher Detection with Mark Hamilton an...Deep Reality Simulation for Automated Poacher Detection with Mark Hamilton an...
Deep Reality Simulation for Automated Poacher Detection with Mark Hamilton an...Databricks
 
Advanced Data Science with Apache Spark-(Reza Zadeh, Stanford)
Advanced Data Science with Apache Spark-(Reza Zadeh, Stanford)Advanced Data Science with Apache Spark-(Reza Zadeh, Stanford)
Advanced Data Science with Apache Spark-(Reza Zadeh, Stanford)Spark Summit
 
Reactive programming with RxSwift
Reactive programming with RxSwiftReactive programming with RxSwift
Reactive programming with RxSwiftOleksandr Stepanov
 
Design and Implementation of the Security Graph Language
Design and Implementation of the Security Graph LanguageDesign and Implementation of the Security Graph Language
Design and Implementation of the Security Graph LanguageAsankhaya Sharma
 
Scilab: Computing Tool For Engineers
Scilab: Computing Tool For EngineersScilab: Computing Tool For Engineers
Scilab: Computing Tool For EngineersNaren P.R.
 
Integrating Performance Modeling in Industrial Automation through AutomationM...
Integrating Performance Modeling in Industrial Automation through AutomationM...Integrating Performance Modeling in Industrial Automation through AutomationM...
Integrating Performance Modeling in Industrial Automation through AutomationM...Luca Berardinelli
 

What's hot (20)

Callgraph analysis
Callgraph analysisCallgraph analysis
Callgraph analysis
 
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
 
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
 
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...
 
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
 
Partial Compilers
Partial CompilersPartial Compilers
Partial Compilers
 
Simulation Projects in Matlab
Simulation Projects in MatlabSimulation Projects in Matlab
Simulation Projects in Matlab
 
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
 
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
 
Htn Planning In A Tool Supported
Htn Planning In A Tool SupportedHtn Planning In A Tool Supported
Htn Planning In A Tool Supported
 
Deep Reality Simulation for Automated Poacher Detection with Mark Hamilton an...
Deep Reality Simulation for Automated Poacher Detection with Mark Hamilton an...Deep Reality Simulation for Automated Poacher Detection with Mark Hamilton an...
Deep Reality Simulation for Automated Poacher Detection with Mark Hamilton an...
 
Advanced Data Science with Apache Spark-(Reza Zadeh, Stanford)
Advanced Data Science with Apache Spark-(Reza Zadeh, Stanford)Advanced Data Science with Apache Spark-(Reza Zadeh, Stanford)
Advanced Data Science with Apache Spark-(Reza Zadeh, Stanford)
 
Reactive programming with RxSwift
Reactive programming with RxSwiftReactive programming with RxSwift
Reactive programming with RxSwift
 
Design and Implementation of the Security Graph Language
Design and Implementation of the Security Graph LanguageDesign and Implementation of the Security Graph Language
Design and Implementation of the Security Graph Language
 
MATLAB/Simulink test02
MATLAB/Simulink test02MATLAB/Simulink test02
MATLAB/Simulink test02
 
Graph database
Graph databaseGraph database
Graph database
 
Scilab: Computing Tool For Engineers
Scilab: Computing Tool For EngineersScilab: Computing Tool For Engineers
Scilab: Computing Tool For Engineers
 
Integrating Performance Modeling in Industrial Automation through AutomationM...
Integrating Performance Modeling in Industrial Automation through AutomationM...Integrating Performance Modeling in Industrial Automation through AutomationM...
Integrating Performance Modeling in Industrial Automation through AutomationM...
 
Timed automata
Timed automataTimed automata
Timed automata
 

Viewers also liked

Design Thinking Assignment
Design Thinking AssignmentDesign Thinking Assignment
Design Thinking AssignmentSalma ES-Salmani
 
OCL Specification Status
OCL Specification StatusOCL Specification Status
OCL Specification StatusEdward Willink
 
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
 
Fast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast QueriesFast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast QueriesEdward Willink
 
Collaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source ProjectsCollaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source ProjectsJordi Cabot
 
Developpement mobile vs open source
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open sourceKorteby Farouk
 
OCL Integration and Code Generation
OCL Integration and Code GenerationOCL Integration and Code Generation
OCL Integration and Code GenerationEdward Willink
 
Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Pascal Roques
 
La & edm in practice
La & edm in practiceLa & edm in practice
La & edm in practicebharati k
 
Vbisigk
VbisigkVbisigk
VbisigkISIG
 
Yet Another Three QVT Languages
Yet Another Three QVT LanguagesYet Another Three QVT Languages
Yet Another Three QVT LanguagesEdward Willink
 
Embedded OCL Integration and Debugging
Embedded OCL Integration and DebuggingEmbedded OCL Integration and Debugging
Embedded OCL Integration and DebuggingEdward Willink
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal PerspectiveEdward Willink
 
النشاط العلمي - الكهرباء
النشاط العلمي  -   الكهرباءالنشاط العلمي  -   الكهرباء
النشاط العلمي - الكهرباءErradi Mohamed
 
Frame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enoughFrame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enoughRealTime-at-Work (RTaW)
 
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
 
SysML adoption in France
SysML adoption in FranceSysML adoption in France
SysML adoption in FrancePascal Roques
 
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
 
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
 

Viewers also liked (20)

Design Thinking Assignment
Design Thinking AssignmentDesign Thinking Assignment
Design Thinking Assignment
 
OCL Specification Status
OCL Specification StatusOCL Specification Status
OCL Specification Status
 
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...
 
Fast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast QueriesFast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast Queries
 
Collaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source ProjectsCollaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source Projects
 
Developpement mobile vs open source
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open source
 
OCL Integration and Code Generation
OCL Integration and Code GenerationOCL Integration and Code Generation
OCL Integration and Code Generation
 
Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0
 
La & edm in practice
La & edm in practiceLa & edm in practice
La & edm in practice
 
Vbisigk
VbisigkVbisigk
Vbisigk
 
Yet Another Three QVT Languages
Yet Another Three QVT LanguagesYet Another Three QVT Languages
Yet Another Three QVT Languages
 
Embedded OCL Integration and Debugging
Embedded OCL Integration and DebuggingEmbedded OCL Integration and Debugging
Embedded OCL Integration and Debugging
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal Perspective
 
النشاط العلمي - الكهرباء
النشاط العلمي  -   الكهرباءالنشاط العلمي  -   الكهرباء
النشاط العلمي - الكهرباء
 
Frame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enoughFrame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enough
 
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...
 
SysML adoption in France
SysML adoption in FranceSysML adoption in France
SysML adoption in France
 
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
 
The OCLforUML Profile
The OCLforUML ProfileThe OCLforUML Profile
The OCLforUML Profile
 
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
 

Similar to Optimized declarative transformation First Eclipse QVTc results

PDE2011 pythonOCC project status and plans
PDE2011 pythonOCC project status and plansPDE2011 pythonOCC project status and plans
PDE2011 pythonOCC project status and plansThomas Paviot
 
Adam_Mcconnell_SPR11_v3
Adam_Mcconnell_SPR11_v3Adam_Mcconnell_SPR11_v3
Adam_Mcconnell_SPR11_v3Adam McConnell
 
Pre-exascale Architectures: OpenPOWER Performance and Usability Assessment fo...
Pre-exascale Architectures: OpenPOWER Performance and Usability Assessment fo...Pre-exascale Architectures: OpenPOWER Performance and Usability Assessment fo...
Pre-exascale Architectures: OpenPOWER Performance and Usability Assessment fo...inside-BigData.com
 
Functest in Depth
Functest in DepthFunctest in Depth
Functest in DepthOPNFV
 
Portofolio Control Version SN
Portofolio Control Version SNPortofolio Control Version SN
Portofolio Control Version SNSamuel Narcisse
 
GTC16 - S6410 - Comparing OpenACC 2.5 and OpenMP 4.5
GTC16 - S6410 - Comparing OpenACC 2.5 and OpenMP 4.5GTC16 - S6410 - Comparing OpenACC 2.5 and OpenMP 4.5
GTC16 - S6410 - Comparing OpenACC 2.5 and OpenMP 4.5Jeff Larkin
 
Implementation of a SaaS based simulation platform using open standards and o...
Implementation of a SaaS based simulation platform using open standards and o...Implementation of a SaaS based simulation platform using open standards and o...
Implementation of a SaaS based simulation platform using open standards and o...Thomas Paviot
 
HKG15-110: ODP Project Update
HKG15-110: ODP Project UpdateHKG15-110: ODP Project Update
HKG15-110: ODP Project UpdateLinaro
 
Ecet 365 Enhance teaching / snaptutorial.com
Ecet 365   Enhance teaching / snaptutorial.comEcet 365   Enhance teaching / snaptutorial.com
Ecet 365 Enhance teaching / snaptutorial.comDavis116a
 
IEEE P2P 2013 - Bootstrapping Skynet: Calibration and Autonomic Self-Control ...
IEEE P2P 2013 - Bootstrapping Skynet: Calibration and Autonomic Self-Control ...IEEE P2P 2013 - Bootstrapping Skynet: Calibration and Autonomic Self-Control ...
IEEE P2P 2013 - Bootstrapping Skynet: Calibration and Autonomic Self-Control ...Kalman Graffi
 
An experience on empirical research about rdf stream
An experience on empirical research about rdf streamAn experience on empirical research about rdf stream
An experience on empirical research about rdf streamDaniele Dell'Aglio
 
ECET 365 Exceptional Education / snaptutorial.com
ECET 365 Exceptional Education / snaptutorial.comECET 365 Exceptional Education / snaptutorial.com
ECET 365 Exceptional Education / snaptutorial.comdonaldzs109
 
Ecet 365 Education Redefined - snaptutorial.com
Ecet 365    Education Redefined - snaptutorial.comEcet 365    Education Redefined - snaptutorial.com
Ecet 365 Education Redefined - snaptutorial.comDavisMurphyC85
 
ECET 365 Success Begins/Newtonhelp.com
ECET 365 Success Begins/Newtonhelp.comECET 365 Success Begins/Newtonhelp.com
ECET 365 Success Begins/Newtonhelp.comledlang1
 
OpenDaylight app development tutorial
OpenDaylight app development tutorialOpenDaylight app development tutorial
OpenDaylight app development tutorialSDN Hub
 
SFO15-102:ODP Project Update
SFO15-102:ODP Project UpdateSFO15-102:ODP Project Update
SFO15-102:ODP Project UpdateLinaro
 
Introducing MLflow for R
Introducing MLflow for RIntroducing MLflow for R
Introducing MLflow for RKevin Kuo
 
Final Presentation
Final PresentationFinal Presentation
Final PresentationColin Eaton
 
Portfolio control version sn_v5
Portfolio control version sn_v5Portfolio control version sn_v5
Portfolio control version sn_v5Samuel Narcisse
 
Hardware Implementation Of QPSK Modulator for Satellite Communications
Hardware Implementation Of QPSK Modulator for Satellite CommunicationsHardware Implementation Of QPSK Modulator for Satellite Communications
Hardware Implementation Of QPSK Modulator for Satellite Communicationspradeepps88
 

Similar to Optimized declarative transformation First Eclipse QVTc results (20)

PDE2011 pythonOCC project status and plans
PDE2011 pythonOCC project status and plansPDE2011 pythonOCC project status and plans
PDE2011 pythonOCC project status and plans
 
Adam_Mcconnell_SPR11_v3
Adam_Mcconnell_SPR11_v3Adam_Mcconnell_SPR11_v3
Adam_Mcconnell_SPR11_v3
 
Pre-exascale Architectures: OpenPOWER Performance and Usability Assessment fo...
Pre-exascale Architectures: OpenPOWER Performance and Usability Assessment fo...Pre-exascale Architectures: OpenPOWER Performance and Usability Assessment fo...
Pre-exascale Architectures: OpenPOWER Performance and Usability Assessment fo...
 
Functest in Depth
Functest in DepthFunctest in Depth
Functest in Depth
 
Portofolio Control Version SN
Portofolio Control Version SNPortofolio Control Version SN
Portofolio Control Version SN
 
GTC16 - S6410 - Comparing OpenACC 2.5 and OpenMP 4.5
GTC16 - S6410 - Comparing OpenACC 2.5 and OpenMP 4.5GTC16 - S6410 - Comparing OpenACC 2.5 and OpenMP 4.5
GTC16 - S6410 - Comparing OpenACC 2.5 and OpenMP 4.5
 
Implementation of a SaaS based simulation platform using open standards and o...
Implementation of a SaaS based simulation platform using open standards and o...Implementation of a SaaS based simulation platform using open standards and o...
Implementation of a SaaS based simulation platform using open standards and o...
 
HKG15-110: ODP Project Update
HKG15-110: ODP Project UpdateHKG15-110: ODP Project Update
HKG15-110: ODP Project Update
 
Ecet 365 Enhance teaching / snaptutorial.com
Ecet 365   Enhance teaching / snaptutorial.comEcet 365   Enhance teaching / snaptutorial.com
Ecet 365 Enhance teaching / snaptutorial.com
 
IEEE P2P 2013 - Bootstrapping Skynet: Calibration and Autonomic Self-Control ...
IEEE P2P 2013 - Bootstrapping Skynet: Calibration and Autonomic Self-Control ...IEEE P2P 2013 - Bootstrapping Skynet: Calibration and Autonomic Self-Control ...
IEEE P2P 2013 - Bootstrapping Skynet: Calibration and Autonomic Self-Control ...
 
An experience on empirical research about rdf stream
An experience on empirical research about rdf streamAn experience on empirical research about rdf stream
An experience on empirical research about rdf stream
 
ECET 365 Exceptional Education / snaptutorial.com
ECET 365 Exceptional Education / snaptutorial.comECET 365 Exceptional Education / snaptutorial.com
ECET 365 Exceptional Education / snaptutorial.com
 
Ecet 365 Education Redefined - snaptutorial.com
Ecet 365    Education Redefined - snaptutorial.comEcet 365    Education Redefined - snaptutorial.com
Ecet 365 Education Redefined - snaptutorial.com
 
ECET 365 Success Begins/Newtonhelp.com
ECET 365 Success Begins/Newtonhelp.comECET 365 Success Begins/Newtonhelp.com
ECET 365 Success Begins/Newtonhelp.com
 
OpenDaylight app development tutorial
OpenDaylight app development tutorialOpenDaylight app development tutorial
OpenDaylight app development tutorial
 
SFO15-102:ODP Project Update
SFO15-102:ODP Project UpdateSFO15-102:ODP Project Update
SFO15-102:ODP Project Update
 
Introducing MLflow for R
Introducing MLflow for RIntroducing MLflow for R
Introducing MLflow for R
 
Final Presentation
Final PresentationFinal Presentation
Final Presentation
 
Portfolio control version sn_v5
Portfolio control version sn_v5Portfolio control version sn_v5
Portfolio control version sn_v5
 
Hardware Implementation Of QPSK Modulator for Satellite Communications
Hardware Implementation Of QPSK Modulator for Satellite CommunicationsHardware Implementation Of QPSK Modulator for Satellite Communications
Hardware Implementation Of QPSK Modulator for Satellite Communications
 

More from 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
 
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
 
OCL - The Bigger Picture
OCL - The Bigger PictureOCL - The Bigger Picture
OCL - The Bigger PictureEdward 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
 

More from 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
 
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
 
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
 
OCL - The Bigger Picture
OCL - The Bigger PictureOCL - The Bigger Picture
OCL - The Bigger Picture
 
UMLX and QVT and ATL
UMLX and QVT and ATLUMLX and QVT and ATL
UMLX and QVT and ATL
 
Eclipse OCL Summary
Eclipse OCL SummaryEclipse OCL Summary
Eclipse OCL Summary
 
Aligning OCL and UML
Aligning OCL and UMLAligning OCL and UML
Aligning OCL and UML
 
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
 

Recently uploaded

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
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
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 

Recently uploaded (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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...
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 

Optimized declarative transformation First Eclipse QVTc results

  • 1. Made available under EPL 1.0 Optimized declarative transformation First Eclipse QVTc results 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 BigMDE @ STAF 2016 8th July 2016
  • 2. 8-July-2016 First Eclipse QVTc results 2Made available under EPL 1.0 Overview QVT Background Eclipse QVTd architecture Execution time imperative/declarative Intra-mapping optimization Inter-mapping optimization Eclipse QVTc results Eclipse QVTc/QVTr status Conclusion
  • 3. 8-July-2016 First Eclipse QVTc results 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. 8-July-2016 First Eclipse QVTc results 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) QVTm2QVTp ⇒ Partitioned to avoid deadlocks QVTp2QVTs ⇒ Schedulable graphical form QVTs2QVTi ⇒ Imperative executable form VMNew Intermedate LanguagesQVT Declarative QVTr QVTc QVTuQVTc QVTm QVTi OCL UML ALF QVTo ATL ETL composition program-to-program transformation XYZ language representation Java QVTi +QVTp QVTs
  • 5. 8-July-2016 First Eclipse QVTc results 5Made available under EPL 1.0 Execution time considerations Approximate execution time: (W.N.R.L.C) A W - the Workload - the number of data elements to be processed N - the Necessary computations per data element R - the memory Representation access overhead L - the programming Language overhead C - the Control overhead A - the Algorithmic overhead
  • 6. 8-July-2016 First Eclipse QVTc results 6Made available under EPL 1.0 Imperative Transformations Explicit control statements Manual programming hopefully good may be bad Tooling hopefully good may be bad
  • 7. 8-July-2016 First Eclipse QVTc results 7Made 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
  • 8. 8-July-2016 First Eclipse QVTc results 8Made 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
  • 9. 8-July-2016 First Eclipse QVTc results 9Made available under EPL 1.0 Declarative Optimization Micro-mapping primitive partial mapping that avoids dependency deadlocks Intra-micro-mapping reduce dimensionality of matching input object search 3-dimensional search awkward, cubic performance 1-dimensional search is simple loop Inter-micro-mapping invoke micro-mappings in sensible order mostly static schedule efficient dynamic fall-back schedule for residue
  • 10. 8-July-2016 First Eclipse QVTc results 10Made available under EPL 1.0 QVTc Mapping Areas and Patterns Left/Middle/Right Input/Trace/Output domains Guard/Bottom predicate/action patterns Just like a triple graph, but Middle is reified Left Guard Middle Guard Right GuardLeft Guard Left Guard Middle Bottom Right BottomLeft Bottom
  • 11. 8-July-2016 First Eclipse QVTc results 11Made available under EPL 1.0 Intra-mapping Example - QVTp Left(uml)/Right(rdbms) Hand Patterns variables, (predicates, assignments) Middle Pattern variables, predicates, assignments
  • 12. 8-July-2016 First Eclipse QVTc results 12Made available under EPL 1.0 Example - LHS Left Hand 'Object' Pattern For each p that is-a Package For each c that is-a Class For each name that is-a String provided c.namespace = p Class objects must be non-null (provided c.name = name) DataType objects may be null
  • 13. 8-July-2016 First Eclipse QVTc results 13Made available under EPL 1.0 Example - RHS Right Hand 'Object' Pattern Create objects s, pk, t, pc Assign relationships owner, owner, schema Dashed: Compute set keys Assign attributes kind, kind, type, keys
  • 14. 8-July-2016 First Eclipse QVTc results 14Made available under EPL 1.0 Example - Middle Elements QVTc: Explicit Trace Objects - c2t, p2s OCL: all object navigations are bidirectional
  • 15. 8-July-2016 First Eclipse QVTc results 15Made available under EPL 1.0 Example - Dependency Analysis BLACK - constant BLUE - loaded from input CYAN - created/assigned elsewhere GREEN - created/assigned here
  • 16. 8-July-2016 First Eclipse QVTc results 16Made available under EPL 1.0 Example - Multiplicity Analysis Pattern defines the result truth to-1 multiplicities the same truth Ignore non-to-1 relationships everything navigable by to-1 from c:Class
  • 17. 8-July-2016 First Eclipse QVTc results 17Made available under EPL 1.0 Intra-Mapping Optimization Example naively 3-dimensional {Package, Class, String} optimized 1-dimensional {Class} and 2 navigations Empirical observation about 90% of mappings can be single input multi-input mappings have quadratic/worse execution Work in progress nearly all multi-input mappings can be reduced to single input and local loops only Cartesian problems need Cartesian execution
  • 18. 8-July-2016 First Eclipse QVTc results 18Made available under EPL 1.0 Inter-Mapping optimizations Inter-mappings have simple dependency rule CYAN elements must be produced elsewhere elements are produced as GREEN elements Global analysis: GREEN before CYAN Complications multiple GREEN producers multiple CYAN consumers consumption of derived types
  • 19. 8-July-2016 First Eclipse QVTc results 19Made available under EPL 1.0 Full UML2RDBMS schedule
  • 20. 8-July-2016 First Eclipse QVTc results 20Made available under EPL 1.0 Top of UML2RDBMS schedule Solid edges passed inputs Dashed edges dependencies required inputs locally renavigated Ellipses communication buffers
  • 21. 8-July-2016 First Eclipse QVTc results 21Made available under EPL 1.0 Recursion in UML2RDBMS schedule Static integer schedule slots Up arrows recurse - multiple schedule slots run-time speculative / retry execution
  • 22. 8-July-2016 First Eclipse QVTc results 22Made available under EPL 1.0 UML2RDBMS overall 20 micro-mappings 15 reduced to single input - linear performance 5 with two inputs - quadratic performance when associations in use work in progress use local loops - linear wrt output No point showing fixable quadratic performance use Families2Persons - linear performance Results
  • 23. 8-July-2016 First Eclipse QVTc results 23Made available under EPL 1.0 Families2Persons Results
  • 24. 8-July-2016 First Eclipse QVTc results 24Made available under EPL 1.0 Families2Persons Size Results Failing at/below 10,000,000 elements in 4 GB. 400 Bytes per element! 50 'things' 8 bytes per thing with 64 bit CPU Input/trace/output objects, String names 44 bytes per HashMap$Entry node
  • 25. 8-July-2016 First Eclipse QVTc results 25Made 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 ?)
  • 26. 8-July-2016 First Eclipse QVTc results 26Made available under EPL 1.0 Conclusion First implementation of the QVTc specification. First direct code generator for model transformations. Thirty fold speed-up. Graph presentation of metamodel and dependency analyses tames the naive inefficiencies of a declarative schedule. Many more optimizations to do, and ... QVTr.