WFLP 2018 - Online Appendix
Thom Frühwirth, Daniel Gall: Exploring Parallel Execution Strategies for Constraint Handling Rules
Constraint Handling Rules (CHR) is a programming language that has its origins in Constraint Logic Programming. Since CHR is a declarative rule-based language, concurrency is inherent as rules can be applied to subsets of constraints in parallel. Parallel implementations of CHR, be it in software, be it in hardware, use different execution strategies for parallel execution of CHR programs depending on the implementation language.
In this report, our goal is to analyze parallel execution of CHR programs from a more general conceptual perspective. For this purpose, a sequential simulation of parallel CHR execution is used to systematically encode different parallel execution strategies. In exhaustive experiments on some typical examples from the literature, parallel and sequential execution can be compared to each other. The number of processors can be bounded or unbounded for a more theoretical analysis. As a result, some preliminary but indicative observations on the influence of the execution strategy can be made for the different problem classes and in general.