Shared SAT Solvers and SAT Memory in Distributed Business Applications

Sergejs Kozlovičs
DOI: https://doi.org/10.1007/978-3-031-09850-5_14
2023-01-24
Abstract:We propose a software architecture where SAT solvers act as a shared network resource for distributed business applications. There can be multiple parallel SAT solvers running either on dedicated hardware (a multi-processor system or a system with a specific GPU) or in the cloud. In order to avoid complex message passing between network nodes, we introduce a novel concept of the shared SAT memory, which can be accessed (in the read/write mode) from multiple different SAT solvers and modules implementing the business logic. As a result, our architecture allows for the easy generation, diversification, and solving of SAT instances from existing high-level programming languages without the need to think about the network. We demonstrate our architecture on the use case of transforming the integer factorization problem to SAT.
Distributed, Parallel, and Cluster Computing,Logic in Computer Science
What problem does this paper attempt to address?
The main problem that this paper attempts to solve is to integrate SAT solvers as shared network resources into distributed commercial applications, in order to simplify the generation, diversification, and solution process of SAT problems. Specifically, the paper proposes a new architecture in which multiple SAT solvers running in parallel can communicate through shared SAT memory without the need for complex network message passing. This architecture allows SAT instances to be easily generated and solved from existing high - level programming languages, without developers having to worry about the underlying network details. ### Summary of the Core Problems in the Paper 1. **Integrating SAT Solvers**: How to integrate SAT solvers as shared resources into distributed commercial software so that they can efficiently handle computationally - intensive tasks. 2. **Optimizing Communication between Multiple SAT Solvers**: How to optimize the communication between multiple parallel SAT solvers, for example, by diversifying and learning clause exchanges to improve the solving efficiency. 3. **Introducing Shared SAT Memory**: Propose the concept of a shared SAT memory, enabling multiple SAT solvers and business logic modules to access the same memory area in read - write mode, thereby simplifying data sharing and collaboration. ### Key Technical Points - **Shared SAT Memory**: This is a new type of memory structure that allows multiple SAT solvers and business logic modules to simultaneously access and modify the data of SAT problems. It avoids complex message - passing mechanisms and simplifies the implementation of distributed systems. - **Web Kernel**: As an abstraction layer, the Web Kernel acts as a communication proxy between SAT solvers, business logic units, and SAT memory, providing functions similar to those of an operating system kernel. - **Parallelization and Diversification**: By dividing tasks into subtasks and using diversified strategies to assign them to multiple parallel solvers, the solving efficiency can be significantly improved. ### Application Cases The paper demonstrates the application of its architecture by transforming the integer factorization problem into a SAT problem. The specific steps include: 1. **Initializing Web Memory**: Initialize the corresponding Boolean variables for each factor. 2. **Generating SAT Formulas**: Use the Karatsuba algorithm to recursively generate SAT formulas for multiplication operations. 3. **Converting to CNF Form**: Convert the generated SAT formulas into conjunctive normal form (CNF) so that SAT solvers can handle them. 4. **Solving SAT Instances**: Call the available SAT solvers to solve the generated SAT instances and finally obtain the result of integer factorization. ### Conclusion The paper proposes an innovative software architecture aimed at integrating SAT solvers into distributed commercial applications through shared SAT memory and an efficient communication mechanism. This method not only simplifies the generation and solution process of SAT problems but also improves the solving efficiency and is suitable for a variety of practical application scenarios.