Decentralized execution of constraint handling rules for ensembles

CHR is a declarative, concurrent and committed choice rule-based constraint programming language. In this paper, we adapt CHR to provide a decentralized execution model for parallel and distributed programs. Specifically, we consider an execution model consisting of an ensemble of computing entities, each with its own constraint store and each capable of communicating with its neighbors. We extend CHR into CHR<sup><i>e</i></sup>, in which rules are executed at a location and are allowed to access the constraint store of its immediate neighbors. We give an operational semantics for CHR<sup><i>e</i></sup>, denoted <i>ω</i><sub>0</sub><sup><i>e</i></sup>, that defines incremental and asynchronous decentralized rewriting for the class of CHR<sup><i>e</i></sup> rules characterized by purely local matching (0-neighbor restricted rules). We show the soundness of the <i>ω</i><sub>0</sub><sup><i>e</i></sup> semantics with respect to the abstract CHR semantics. We then give a safe encoding of the more general 1-neighbor restricted rules as 0-neighbor restricted rules, and discuss how this encoding can be generalized to all CHR<sup><i>e</i></sup> programs.

[1]  Limin Jia,et al.  Maintaining distributed logic programs incrementally , 2011, Comput. Lang. Syst. Struct..

[2]  Peter J. Stuckey,et al.  The Refined Operational Semantics of Constraint Handling Rules , 2004, ICLP.

[3]  Thom W. Frühwirth Parallelizing Union-Find in Constraint Handling Rules Using Confluence Analysis , 2005, ICLP.

[4]  Arabellastrasse,et al.  Constraint Handling Rules ? , 1995 .

[5]  Thom W. Frühwirth,et al.  Compiling CHR to parallel hardware , 2012, PPDP.

[6]  Tom Schrijvers,et al.  Analyses, Optimizations and Extensions of Constraint Handling Rules: Ph.D. Summary , 2005, ICLP.

[7]  Maurizio Gabbrielli,et al.  On the expressive power of priorities in CHR , 2009, PPDP '09.

[8]  Frank Pfenning Substructural Operational Semantics and Linear Destination-Passing Style (Invited Talk) , 2004, APLAS.

[9]  Martin Sulzmann,et al.  Under Consideration for Publication in Theory and Practice of Logic Programming Concurrent Goal-based Execution of Constraint Handling Rules , 2022 .

[10]  Michael Stonebraker,et al.  A Formal Model of Crash Recovery in a Distributed System , 1983, IEEE Transactions on Software Engineering.

[11]  Michael J. Quinn Analysis and benchmarking of two parallel sorting algorithms: Hyperquicksort and quickmerge , 1989, BIT Comput. Sci. Sect..

[12]  Martin Sulzmann,et al.  Parallel execution of multi-set constraint rewrite rules , 2008, PPDP '08.

[13]  J. D. Day,et al.  A principle for resilient sharing of distributed resources , 1976, ICSE '76.

[14]  Aart J. C. Bik,et al.  Pregel: a system for large-scale graph processing , 2010, SIGMOD Conference.

[15]  Seth Copen Goldstein,et al.  Bottom-Up Logic Programming for Multicores , 2012 .

[16]  Ion Stoica,et al.  Declarative networking: language, execution and optimization , 2006, SIGMOD Conference.

[17]  Thom W. Frühwirth,et al.  Constraint Handling Rules , 2009, Constraint Programming.

[18]  Seth Copen Goldstein,et al.  A Language for Large Ensembles of Independently Executing Nodes , 2009, ICLP.