Introduction to parallel computing: design and analysis of algorithms
Introduction to parallel computing: design and analysis of algorithms
Randomized parallel algorithms for backtrack search and branch-and-bound computation
Journal of the ACM (JACM)
A machine program for theorem-proving
Communications of the ACM
Chaff: engineering an efficient SAT solver
Proceedings of the 38th annual Design Automation Conference
Fundamentals of Sequential and Parallel Algorithms
Fundamentals of Sequential and Parallel Algorithms
Brief announcement: dynamic interoperable point-to-point connection of MPI implementations
Proceedings of the twenty-fourth annual ACM symposium on Principles of distributed computing
A template library to facilitate teaching message passing parallel computing
Proceedings of the 37th SIGCSE technical symposium on Computer science education
Dynamic interoperable message passing
PVM/MPI'05 Proceedings of the 12th European PVM/MPI users' group conference on Recent Advances in Parallel Virtual Machine and Message Passing Interface
Higher-order linkage learning in the ECGA
Proceedings of the 14th annual conference on Genetic and evolutionary computation
A multi-parent search operator for bayesian network building
PPSN'12 Proceedings of the 12th international conference on Parallel Problem Solving from Nature - Volume Part I
Hi-index | 0.00 |
There is a wide class of important problems, typified by the NP-complete SAT problem, for which the best known solutions are obtained using the backtracking strategy and heuristics to bound the search of the associated state-space tree. The backtracking strategy is well suited to parallelization, since different portions of the state-space tree can be assigned to different processes. The resulting strategy is often referred to in the literature as parallel depth-first search or parallel backtracking. In this paper we introduce Backtracking Framework (BkFr) that simplifies implementation of the parallel backtracking paradigm in the single cluster environment, and supports the extension of computations over multiple clusters. BkFr uses two communication methods -- MPI for intra-cluster communication and ICI (Inter-Cluster Interface) for inter-cluster communication. What differentiates ICI from MPI-2, Globus and other libraries that support inter-cluster message passing is its lightweight (requiring only Unix socket API and little or no systems administration support), and its fault-tolerant capabilities. The latter capability was one of our principal motivations for developing ICI, since it allows new clusters to join an ongoing computation anytime without affecting the integrity of the whole system. Also, a sudden failure of a cluster that is part of the computation will result in a reassignment of its work to another resource. There are a number of other parallel frameworks for parallel state-space tree searching, such as the ZRAM framework, but they do not support the multi-cluster fault-tolerant option. In addition to its ease of implementation, BkFr offers a simple interface (less than 10 functions) for new compute modules, making it relatively simple for the user to alter existing code to a form suitable for the BkFr framework. To further simplify the utilization of BkFr for solving user-defined problems, we have developed our own Shared Variable Emulation layer, which hides MPI and ICI communication functions, and allows the user to send information (messages) as variables. Because of its lightweight features, our framework does not incur significant additional overhead, and performance data shows good speedup on problems ranging from a simply implemented version of the sum of subsets problem, to complicated implementations of SAT solvers such as SBSAT and zChaff. While the current implementations of ICI and BkFr are developed in the context of MPI, they can readily be adapted to other message passing environments.