Seite 1 Monitoring the Execution of Declarative Model Transformations R. Groner, S. Gylstorff, M. Tichy
Seite 2 R. Groner, S.Gylstorff, M. Tichy Transformation Model of an Script Electronic Control Unit (170 000 elements) Transformed Model Transformation Engine 12 hours!
Seite 3 R. Groner, S.Gylstorff, M. Tichy We need monitoring to understand why a transformation takes so long
Seite 4 R. Groner, S.Gylstorff, M. Tichy Related Work • Piers, W. (2010). ATL 3.1 – Industrialization improvements. In Proceedings of the 2nd International Workshop on Model Transformation with ATL . Picture from Piers, W. (2010). ATL 3.1 – Industrialization improvements. In Proceedings of the 2nd International Workshop on Model Transformation with ATL .
Seite 5 R. Groner, S.Gylstorff, M. Tichy We need monitoring to understand why a We need monitoring to understand why a transformation takes so long transformation takes so long • We implemented monitoring for the declarative transformation language Henshin with Kieker
Seite 6 R. Groner, S.Gylstorff, M. Tichy Henshin transferMoney(in amount, in fromId, in toId) Left-hand side (LHS) Right-hand side (RHS) Model
Seite 7 R. Groner, S.Gylstorff, M. Tichy Henshin transferMoney(in amount=5, in fromId=2, in toId=4) 1. Search plan 1. Search plan 1. Search plan 1. Search plan 1. Search plan 1. Search plan 1. Search plan 1. Search plan 1. Search plan 1. Search plan 1. Search plan 1. Search plan 1. Search plan • • • • • • • • • • • • • 1 c3 2 c3 {clientFrom,clientTo,from,to} {clientFrom,clientTo,from,to} {clientFrom,clientTo,from,to} {clientFrom,clientTo,from,to} {clientFrom,clientTo,from,to} {clientFrom,clientTo,from,to} {clientFrom,clientTo,from,to} {clientFrom,clientTo,from,to} {clientFrom,clientTo,from,to} {clientFrom,clientTo,from,to} {clientFrom,clientTo,from,to} {clientFrom,clientTo,from,to} {clientFrom,clientTo,from,to} 2. Domains 2. Domains 2. Domains 2. Domains 2. Domains 2. Domains 2. Domains 2. Domains 2. Domains 2. Domains 2. Domains 2. Domains • • • • • • • • • • • • clientFrom={c1,c2,c3} clientFrom={c1,c2,c3} clientFrom={c1,c2,c3} clientFrom={c1,c2,c3} clientFrom={c1,c2,c3} clientFrom={c1,c2,c3} clientFrom={c1,c2,c3} clientFrom={c1,c2,c3} clientFrom={c1,c2,c3} clientFrom={c1,c2,c3} clientFrom={c1,c2,c3} clientFrom={c1,c2,c3} 3 4 • • • • • • • • • • • clientTo={c1,c2,c3} clientTo={c1,c2,c3} clientTo={c1,c2,c3} clientTo={c1,c2,c3} clientTo={c1,c2,c3} clientTo={c1,c2,c3} clientTo={c1,c2,c3} clientTo={c1,c2,c3} clientTo={c1,c2,c3} clientTo={c1,c2,c3} clientTo={c1,c2,c3} • • • • • • • • • • from={a1,a2,a3,a4} from={a1,a2,a3,a4} from={a1,a2,a3,a4} from={a1,a2,a3,a4} from={a1,a2,a3,a4} from={a1,a2,a3,a4} from={a1,a2,a3,a4} from={a1,a2,a3,a4} from={a1,a2,a3,a4} from={a1,a2,a3,a4} Meta-Model • • • • • • • • • to={a1,a2,a3,a4} to={a1,a2,a3,a4} to={a1,a2,a3,a4} to={a1,a2,a3,a4} to={a1,a2,a3,a4} to={a1,a2,a3,a4} to={a1,a2,a3,a4} to={a1,a2,a3,a4} to={a1,a2,a3,a4} 3. clientFrom 3. clientFrom 3. clientFrom 3. clientFrom 3. clientFrom 3. clientFrom 3. clientFrom 3. clientFrom c3 • • • • • • • from={a3,a4} from={a3,a4} from={a3,a4} from={a3,a4} from={a3,a4} from={a3,a4} from={a3,a4} 4. clientTo 4. clientTo 4. clientTo 4. clientTo 4. clientTo 4. clientTo c3 • • • • • ? ? to={a3,a4} to={a3,a4} to={a3,a4} to={a3,a4} to={a3,a4} 5. from 5. from 5. from 5. from 6. Backtracking 6. Backtracking 6. Backtracking ? ? 7. clientTo Model
Seite 8 R. Groner, S.Gylstorff, M. Tichy Henshin
Seite 9 R. Groner, S.Gylstorff, M. Tichy transferMoney(in amount=5, in fromId=2, in toId=4) Transformation Engine
Seite 10 R. Groner, S.Gylstorff, M. Tichy Related Work • Debray, S. K. (1988). Profiling prolog programs. Software: Practice and Experience , 18 (9), 821-839. • Prolog is a declarative programming language • Prolog uses a similar concept of backtracking during program execution
Seite 11 R. Groner, S.Gylstorff, M. Tichy Relevant Execution Information • Search plan • Number of investigated model elements • Changes in the domains • Backtracking • Execution duration
Seite 12 R. Groner, S.Gylstorff, M. Tichy Search Plan • Q1 How do we receive the order in which the elements of the LHS are Transformation chosen to find an isomorphic node in the input model? Transformation Meta-Model Engine Model
Seite 13 R. Groner, S.Gylstorff, M. Tichy Number of investigated Model Elements • Q2 How do we get the number of model elements examined for each Transformation element in the LHS? Transformation Meta-Model Engine Model
Seite 14 R. Groner, S.Gylstorff, M. Tichy Changes in the Domains • Q3 How can we monitor how binding decisions of a model element to an Transformation element of the LHS affect candidate sets for other LHS elements? Transformation Meta-Model Engine Model
Seite 15 R. Groner, S.Gylstorff, M. Tichy Backtracking • Q4 How can we monitor where and when backtracking occurs? Transformation Transformation Meta-Model Engine Model
Seite 16 R. Groner, S.Gylstorff, M. Tichy Execution Duration • Q5 How can we measure how long the transformation execution takes? Transformation Transformation Meta-Model Engine Model
Seite 17 R. Groner, S.Gylstorff, M. Tichy Measuring Points Transformation Transformation Meta-Model Engine Model
Seite 18 R. Groner, S.Gylstorff, M. Tichy Overhead Transformation Transformation Meta-Model Engine Model
Seite 19 R. Groner, S.Gylstorff, M. Tichy Overhead Transformation Transformation Meta-Model Engine Model
Seite 20 R. Groner, S.Gylstorff, M. Tichy Related Work • Batz, G. V., Kroll, M., & Geiß, R. (2007, October). A first experimental evaluation of search plan driven graph pattern matching. In International Symposium on Applications of Graph Transformations with Industrial Relevance (pp. 471-486). Springer, Berlin, Heidelberg. Transformation Engine
Seite 21 R. Groner, S.Gylstorff, M. Tichy Usage Transformation Engine
Seite 22 R. Groner, S.Gylstorff, M. Tichy Future Work • Extend our monitoring to support also control structures • Investigate the monitoring overhead with bigger examples
Seite 23 R. Groner, S.Gylstorff, M. Tichy Summary
Recommend
More recommend