DIB—a distributed implementation of backtracking
- 20 March 1987
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 9 (2) , 235-256
- https://doi.org/10.1145/22719.24067
Abstract
DIB is a general-purpose package that allows a wide range of applications such as recursive backtrack, branch and bound, and alpha-beta search to be implemented on a multicomputer. It is very easy to use. The application program needs to specify only the root of the recursion tree, the computation to be performed at each node, and how to generate children at each node. In addition, the application program may optionally specify how to synthesize values of tree nodes from their children's values and how to disseminate information (such as bounds) either globally or locally in the tree. DIB uses a distributed algorithm, transparent to the application programmer, that divides the problem into subproblems and dynamically allocates them to any number of (potentially nonhomogeneous) machines. This algorithm requires only minimal support from the distributed operating system. DIB can recover from failures of machines even if they are not detected. DIB currently runs on the Crystal multicomputer at the University of Wisconsin-Madison. Many applications have been implemented quite easily, including exhaustive traversal ( N queens, knight's tour, negamax tree evaluation), branch and bound (traveling salesman) and alpha-beta search (the game of NIM). Speedup is excellent for exhaustive traversal and quite good for branch and bound.Keywords
This publication has 12 references indexed in Scilit:
- Distributed computation via active messagesIEEE Transactions on Computers, 1985
- MULTILISP: a language for concurrent symbolic computationACM Transactions on Programming Languages and Systems, 1985
- Performance of parallel branch-and-bound algorithmsIEEE Transactions on Computers, 1985
- Parallel processing of robot-arm control computation on a multimicroprocessor systemIEEE Journal on Robotics and Automation, 1985
- Generative communication in LindaACM Transactions on Programming Languages and Systems, 1985
- Anomalies in parallel branch-and-bound algorithmsCommunications of the ACM, 1984
- Quotient NetworksIEEE Transactions on Computers, 1982
- An Algorithm for Finding Best Matches in Logarithmic Expected TimeACM Transactions on Mathematical Software, 1977
- An analysis of alpha-beta pruningArtificial Intelligence, 1975
- Branch-and-Bound Methods: A SurveyOperations Research, 1966