Introduction Data Structure Changes Timing Results The Improved GP 2 Compiler 11th International Workshop on Graph Computation Models Graham Campbell Jack Rom¨ o Detlef Plump School of Mathematics, Mathematical Institute, Department of Computer Statistics and Physics, University of Oxford, UK Science, University of York, Newcastle University, UK yyyyyyyy yyyy UK yyyy June 2020 Graham Campbell, Jack Rom¨ o, and Detlef Plump Newcastle University, UK; University of Oxford; University of York, UK The Improved GP 2 Compiler
Introduction Data Structure Changes Timing Results Graph Programming Language GP 2 An experimental DSL for graphs, based on attributed DPO graph-transformation rules. Graham Campbell, Jack Rom¨ o, and Detlef Plump Newcastle University, UK; University of Oxford; University of York, UK The Improved GP 2 Compiler
Introduction Data Structure Changes Timing Results Graph Programming Language GP 2 An experimental DSL for graphs, based on attributed DPO graph-transformation rules. GP 2: abstracts from low-level data structures; Graham Campbell, Jack Rom¨ o, and Detlef Plump Newcastle University, UK; University of Oxford; University of York, UK The Improved GP 2 Compiler
Introduction Data Structure Changes Timing Results Graph Programming Language GP 2 An experimental DSL for graphs, based on attributed DPO graph-transformation rules. GP 2: abstracts from low-level data structures; has a formal operational semantics (Plump 2012; Bak 2015); Graham Campbell, Jack Rom¨ o, and Detlef Plump Newcastle University, UK; University of Oxford; University of York, UK The Improved GP 2 Compiler
Introduction Data Structure Changes Timing Results Graph Programming Language GP 2 An experimental DSL for graphs, based on attributed DPO graph-transformation rules. GP 2: abstracts from low-level data structures; has a formal operational semantics (Plump 2012; Bak 2015); aims to facilitate formal reasoning on programs (Poskitt and Plump 2012; Plump 2016; Wulandari and Plump 2020); Graham Campbell, Jack Rom¨ o, and Detlef Plump Newcastle University, UK; University of Oxford; University of York, UK The Improved GP 2 Compiler
Introduction Data Structure Changes Timing Results Graph Programming Language GP 2 An experimental DSL for graphs, based on attributed DPO graph-transformation rules. GP 2: abstracts from low-level data structures; has a formal operational semantics (Plump 2012; Bak 2015); aims to facilitate formal reasoning on programs (Poskitt and Plump 2012; Plump 2016; Wulandari and Plump 2020); is computationally complete (Plump 2017). Graham Campbell, Jack Rom¨ o, and Detlef Plump Newcastle University, UK; University of Oxford; University of York, UK The Improved GP 2 Compiler
Introduction Data Structure Changes Timing Results Graph Programming Language GP 2 An experimental DSL for graphs, based on attributed DPO graph-transformation rules. GP 2: abstracts from low-level data structures; has a formal operational semantics (Plump 2012; Bak 2015); aims to facilitate formal reasoning on programs (Poskitt and Plump 2012; Plump 2016; Wulandari and Plump 2020); is computationally complete (Plump 2017). GP 2 Program Input Graph C Binary Output GP 2-to-C GCC Execute Program Graph Graham Campbell, Jack Rom¨ o, and Detlef Plump Newcastle University, UK; University of Oxford; University of York, UK The Improved GP 2 Compiler
Introduction Data Structure Changes Timing Results Making GP 2 Fast Performance bottleneck : matching the left-hand graph L of a rule within a host graph G , requiring time polynomial in the size of L . Graham Campbell, Jack Rom¨ o, and Detlef Plump Newcastle University, UK; University of Oxford; University of York, UK The Improved GP 2 Compiler
Introduction Data Structure Changes Timing Results Making GP 2 Fast Performance bottleneck : matching the left-hand graph L of a rule within a host graph G , requiring time polynomial in the size of L . Linear-time graph algorithms in imperative languages may be slowed to polynomial time when they are recast as rule-based programs. Graham Campbell, Jack Rom¨ o, and Detlef Plump Newcastle University, UK; University of Oxford; University of York, UK The Improved GP 2 Compiler
Introduction Data Structure Changes Timing Results Making GP 2 Fast Performance bottleneck : matching the left-hand graph L of a rule within a host graph G , requiring time polynomial in the size of L . Linear-time graph algorithms in imperative languages may be slowed to polynomial time when they are recast as rule-based programs. To speed up matching, GP 2 supports rooted graph transformation where graphs in rules and host graphs are equipped with so-called root nodes (D¨ orr 1995; Bak and Plump 2012). Graham Campbell, Jack Rom¨ o, and Detlef Plump Newcastle University, UK; University of Oxford; University of York, UK The Improved GP 2 Compiler
Introduction Data Structure Changes Timing Results Making GP 2 Fast Performance bottleneck : matching the left-hand graph L of a rule within a host graph G , requiring time polynomial in the size of L . Linear-time graph algorithms in imperative languages may be slowed to polynomial time when they are recast as rule-based programs. To speed up matching, GP 2 supports rooted graph transformation where graphs in rules and host graphs are equipped with so-called root nodes (D¨ orr 1995; Bak and Plump 2012). Roots in rules must match roots in the host graph so that matches are restricted to the neighbourhood of the host graph’s roots. Graham Campbell, Jack Rom¨ o, and Detlef Plump Newcastle University, UK; University of Oxford; University of York, UK The Improved GP 2 Compiler
Introduction Data Structure Changes Timing Results Making GP 2 Fast Performance bottleneck : matching the left-hand graph L of a rule within a host graph G , requiring time polynomial in the size of L . Linear-time graph algorithms in imperative languages may be slowed to polynomial time when they are recast as rule-based programs. To speed up matching, GP 2 supports rooted graph transformation where graphs in rules and host graphs are equipped with so-called root nodes (D¨ orr 1995; Bak and Plump 2012). Roots in rules must match roots in the host graph so that matches are restricted to the neighbourhood of the host graph’s roots. Using rooted rules, some graph algorithms can be implemented to run in linear time on graphs of bounded degree: computing a 2-colouring (Bak and Plump 2016); topological sorting of acyclic graphs (Campbell, Courtehoute, and Plump 2019). MSTs can be computed in linearithmic time (Courtehoute and Plump 2020). Graham Campbell, Jack Rom¨ o, and Detlef Plump Newcastle University, UK; University of Oxford; University of York, UK The Improved GP 2 Compiler
Introduction Data Structure Changes Timing Results Old Theoretical Issue The theory of rooted graph transformation has some undesirable properties, because morphisms need not be root-reflecting. Graham Campbell, Jack Rom¨ o, and Detlef Plump Newcastle University, UK; University of Oxford; University of York, UK The Improved GP 2 Compiler
Introduction Data Structure Changes Timing Results Old Theoretical Issue The theory of rooted graph transformation has some undesirable properties, because morphisms need not be root-reflecting. ← → ← → ∅ PB � PB × PB � PB � � � � � � � PO × PO � PO � PO � ← → ← → ∅ (a) Not invertible (b) Not DPO rewriting Graham Campbell, Jack Rom¨ o, and Detlef Plump Newcastle University, UK; University of Oxford; University of York, UK The Improved GP 2 Compiler
Introduction Data Structure Changes Timing Results Old Theoretical Issue The theory of rooted graph transformation has some undesirable properties, because morphisms need not be root-reflecting. ← → ← → ∅ PB � PB × PB � PB � � � � � � � PO × PO � PO � PO � ← → ← → ∅ (a) Not invertible (b) Not DPO rewriting The 2nd example is due to Plump and Wulandari (unpublished). These problems were fixed by Campbell (2019) by requiring root-reflecting morphisms for rooted graph transformation with relabelling. Graham Campbell, Jack Rom¨ o, and Detlef Plump Newcastle University, UK; University of Oxford; University of York, UK The Improved GP 2 Compiler
Introduction Data Structure Changes Timing Results Old Implementation Issue The internal representation of graphs adds a linear factor to the runtime of some programs where one would not expect. Graham Campbell, Jack Rom¨ o, and Detlef Plump Newcastle University, UK; University of Oxford; University of York, UK The Improved GP 2 Compiler
Introduction Data Structure Changes Timing Results Old Implementation Issue The internal representation of graphs adds a linear factor to the runtime of some programs where one would not expect. Main = del!; if node then fail del(x:list) node(x:list) ⇒ ⇒ x ∅ x x 1 1 Graham Campbell, Jack Rom¨ o, and Detlef Plump Newcastle University, UK; University of Oxford; University of York, UK The Improved GP 2 Compiler
Recommend
More recommend