Lock-free state merging in parallelized constraint satisfaction problem solvers
First Claim
1. A computer-implemented system that facilitates constraint solver processing, comprising:
- a bookkeeping component for representing input solver state of a computational thread as a set of graphs, the input solver state received from parallel solvers operating on the computational thread;
a merge component for pairwise merging of at least two input graphs of the set of graphs into a merged graph that represents final state of the computational thread;
a propagation component for constraint propagation to generate completeness in the merged graph, wherein the propagation component facilitates non-chronological backtracking as part of the constraint propagation to directly change an earlier assumption without changing an intermediate assumption and the propagation component facilitates adding more than one learned constraint during constraint propagation of the merged graph for the parallel solvers, which are parallel SAT solvers, wherein the representing input set of support graphs to be merged by the merge component are conflict-free support graphs.
2 Assignments
0 Petitions
Accused Products
Abstract
Solver state merging in parallel constraint satisfaction problem (CSP) solvers. Solver state during processing of a computational thread of parallel CSP solvers is represented as a set of support graphs. The support graphs are merged in a pairwise fashion, yielding a new conflict-free graph. The merge process is free of cycles, conflicts are removed, and thread processing is lock-free. The architecture can be applied, generally, in any CSP solver (e.g., a Boolean SAT solver) having certain formal properties. A system is provided that facilitates solver processing, the system comprising a bookkeeping component for representing input solver state of a computational thread as a set of graphs, and a merge component for pairwise merging of at least two input graphs of the set of graphs into a merged graph that represents final state of the computational thread.
-
Citations
13 Claims
-
1. A computer-implemented system that facilitates constraint solver processing, comprising:
-
a bookkeeping component for representing input solver state of a computational thread as a set of graphs, the input solver state received from parallel solvers operating on the computational thread; a merge component for pairwise merging of at least two input graphs of the set of graphs into a merged graph that represents final state of the computational thread; a propagation component for constraint propagation to generate completeness in the merged graph, wherein the propagation component facilitates non-chronological backtracking as part of the constraint propagation to directly change an earlier assumption without changing an intermediate assumption and the propagation component facilitates adding more than one learned constraint during constraint propagation of the merged graph for the parallel solvers, which are parallel SAT solvers, wherein the representing input set of support graphs to be merged by the merge component are conflict-free support graphs. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer-implemented method of constraint solver processing, comprising:
-
representing input solver state of a computational thread as a set of support graphs; receiving the support graphs associated with solver state of parallel solvers, the solver state associated with processing of the computational thread; paring a support graph from each of the parallel solvers for merging of nodes having same literal; pairwise merging the support graphs into a merged graph that represents final state of the computational thread; solving completeness of the merged graph by propagating constraints utilizing non-chronological backtracking as part of the constraint propagation to directly change an earlier assumption without changing an intermediate assumption; adding more than one learned constraint during constraint propagation of the merged graph for the parallel solvers, which are parallel SAT solvers; and processing conflicting literals of the merged graph to make the merged graph conflict-free. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A computer-implemented solver system, comprising:
-
computer-implemented means for representing input solver state of a computational thread as a set of support graphs; computer-implemented means for receiving the support graphs from parallel CSP solvers, the support graphs representative of parallel solver state associated with processing of the computational thread; computer-implemented means for paring support graphs from each of the parallel CSP solvers; computer-implemented means for pairwise merging the support graphs into a merged graph; computer-implemented means for eliminating conflicts in the merged graph to output a conflict-free merged graph that represents final state of the computational thread; computer-implemented means for solving completeness of the merged graph by propagating constraints utilizing non-chronological backtracking as part of the constraint propagation to directly change an earlier assumption without changing an intermediate assumption; and computer-implemented means for adding more than one learned constraint during constraint propagation of the merged graph for the parallel solvers, which are parallel SAT solvers.
-
Specification