Interface Reconciliation in Kahn Process Networks using CSP and SAT
Pavel Zaichenkov, Olga Tveretina, Alex Shafarenko

TL;DR
This paper introduces a CSP- and SAT-based method for coordinating interfaces in Kahn Process Networks, enabling automated interface reconciliation for distributed, stream-connected components using a formal message description language.
Contribution
It presents a novel approach combining CSP and SAT solving for interface coordination in KPNs, including a new message language and automated code modification tools.
Findings
Successfully applied to an image processing KPN example.
Demonstrated effective interface reconciliation in distributed systems.
Developed a solver and analysis tools in OCaml.
Abstract
We present a new CSP- and SAT-based approach for coordinating interfaces of distributed stream-connected components provided as closed-source services. The Kahn Process Network (KPN) is taken as a formal model of computation and a Message Definition Language (MDL) is introduced to describe the format of messages communicated between the processes. MDL links input and output interfaces of a node to support flow inheritance and contextualisation. Since interfaces can also be linked by the existence of a data channel between them, the match is generally not only partial but also substantially nonlocal. The KPN communication graph thus becomes a graph of interlocked constraints to be satisfied by specific instances of the variables. We present an algorithm that solves the CSP by iterative approximation while generating an adjunct Boolean SAT problem on the way. We developed a solver in…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed systems and fault tolerance · Advanced Database Systems and Queries · DNA and Biological Computing
