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.
- 1 AKL, S. G., BARNARD, D. T., AND DORAN, R.J. Simulation and analysis in deriving time and storage requirements for a parallel alpha-beta algorithm. In Proceedings of the 1980 International Con{erence on Parallel Processing (Columbus, Oh., Aug. 1980). IEEE, New York, 1980, pp. 231-234.Google Scholar
- 2 BAUDET, G. M. The design and analysis of algorithms for asynchronous multiprocessors. Department of Computer Science, Carnegie-Mellon University, Pittsburgh, Pa., (Apr. 1978).Google Scholar
- 3 BURTON, F. W. Controlling speculative computation in a parallel functional programming language. In Proceedings o{ the 5th International Con{erence on Distributed Computing Systems (Denver, Colo., May 1985), IEEE, New York, 1985, pp. 453-458.Google Scholar
- 4 COOK, R., FINKEL, R., DEWITT, D., LANDWEBER, L., AND VIROILIO, T. The Crystal nugget: Part I of the first report on the Crystal project. Tech. Rep. 499. Computer Sciences Department, University of Wisconsin, Madison, Wisc., Apr. 1983.Google Scholar
- 5 DEWITT, D., FINKEL, R., AND SOLOMON, M. The Crystal multicomputer: Design and implementation experience. Tech. Rep. 553 (To appear, IEEE Transactions on Software Engineering), Computer Sciences Department, University of Wisconsin, Madison, Wisc., Sept. 1984. Google Scholar
- 6 FINKEL, R. A., AND FISHBURN, J. P. Parallelism in alpha-beta search. Arti{. InteU. 19, 1 (Sept. 1982).Google Scholar
- 7 FINKEL, R. A., AND FISHBURN, J.P. Improved speedup bounds for parallel alpha-beta search. IEEE Trans. Pattern Analysis and Machine Intelligence PAMI-5, 1 (Jan. 1983).Google Scholar
- 8 FISHBURN, J. A., AND FINKEL, R. A. Quotient networks. IEEE Trans. Cornput. C-31, 4 (Apr. 1982), 288-295.Google Scholar
- 9 FRIEDMAN, J. H., BENTLEY, J. L., AND FINKEL, R.A. An algorithm for finding best matches in logarithmic time. ACM Trans. Math. Softw. 3, 3 (Sept. 1977), 209-226. Google Scholar
- 10 GELERNTER, D. Generative communication in Linda. ACM Trans. Program. Lang. Syst. (Jan. 1985), 80-112. Google Scholar
- 11 HALSTE~D, R. H., JR. Multilisp: A language for concurrent symbolic computation. ACM Trans. Program. Lang. Syst. 7, 4 (Oct. 1985), 501-538. Google Scholar
- 12 IMAI, M., FUKUMURA, T., AND YOSHIDA, Y. A parallelized branch-and-bound algorithm: Implementation and efficiency. Syst. Comput. Control 10, 3 (1979).Google Scholar
- 13 KASAHARA, H., AND NARITA, S. Parallel processing of robot-arm control computation on a multiprocessor system. IEEE J. Robotics and Automation RA-1 (June 1985), 104-113.Google Scholar
- 14 KNWrH, D. E., AND MOORE, R.W. An analysis of alpha-beta pruning. Arti{. lntelL 6, 4 (Winter 1975), 293-326.Google Scholar
- 15 LAI, T.-H., AND SAHNI, S. Anomalies in parallel branch-and-bound algorithms. Commun. ACM 27, 6 (June 1984), 594-602. Google Scholar
- 16 LAI, T.-H. AND SPRAGUE, A. Performance of branch-and-bound algorithms. IEEE Trans. Comput. C-34 (Oct. 1985), 962-964.Google Scholar
- 17 LAWLER, E. L., AND WOOD, D. Branch and bound methods: A survey. Oper. Res. 14, 4 (1966), 699-719.Google Scholar
- 18 LI, G.-J., AND WAH, B.W. Computational efficiency of parallel approximate branch-and-bound algorithms. In Proceedings o{ the 1984 International Con/erence on Parallel Processing (Columbus, Oh., Aug. 1984), IEEE, New York, 1984.Google Scholar
- 19 LIVNY, M., AND MANBER, U. Distributed computation via active messages. IEEE Trans. Comput. C-34, 12 (Dec. 1985), 1185-1190.Google Scholar
- 20 MANBER, U. On maintaining dynamic information in a concurrent environment. SIAM J. Cornput. 15, 4 (Nov. 1986), 1130-1142. Google Scholar
- 21 MOHAN, J. Experience with two parallel programs solving the traveling salesman problem. In Proceedings o{ the International Conference in Parallel Processing (Columbus, Oh., Aug. 1983), IEEE, New York, 1983, pp. 191-193.Google Scholar
- 22 MOLLER-NIELSEN, P., AND STAUNSTRUP, J. Experiments with a multiprocessor. Tech. Rep. PB-185. Computer Science Department, Aarhus University, Aarhus, Denmark (Nov. 1984).Google Scholar
- 23 SCOTT, M.L. Design and implementation of a distributed systems language. Ph.D. dissertation, Tech. Rep. 596. University of Wisconsin, Madison (May 1985). Google Scholar
- 24 TAMURA, N., AND KANEDA, Y. Implementing parallel prolog on a multi-processor machine. In IEEE 1984 International Symposium on Logic Programming (Atlantic City, N.J., Feb. 1984), IEEE, New York, 1984, pp. 42-48.Google Scholar
- 25 VORNBERGER, O. Graph problems solved on a parallel system. Workshop on Graph Theoretic Concepts in Computer Science, Schloss Schwanberg, West Germany (1985).Google Scholar
- 26 WIRTH, N. Modula: A language for modular multiprogramming. Softw. Prac. Exper. 7, 1 (1977), 3-35.Google Scholar
Index Terms
- DIB—a distributed implementation of backtracking
Recommendations
Tree Size by Partial Backtracking
Knuth [1] recently showed how to estimate the size of a backtrack tree by repeatedly following random paths from the root. Often the efficiency of his method can be greatly improved by occasionally following more than one path from a node. This results in ...
Implementation of dynamic trees with in-subtree operations
We describe an implementation of dynamic trees with "in-subtree" operations. Our implementation follows Sleator and Tarjan's framework of dynamic-tree implementations based on splay trees. We consider the following two examples of "in-subtree" ...
Concurrent dynamic backtracking for distributed CSPs
CP'04: Proceedings of the 10th International Conference on Principles and Practice of Constraint ProgrammingA distributed concurrent search algorithm for distributed constraint satisfaction problems (DisCSPs) is presented. Concurrent search algorithms are composed of multiple search processes (SPs) that operate concurrently and scan non-intersecting parts of ...
Comments