skip to main content
article
Open Access

DIB—a distributed implementation of backtracking

Published:20 March 1987Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle Scholar
  2. 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 ScholarGoogle Scholar
  3. 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 ScholarGoogle Scholar
  4. 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 ScholarGoogle Scholar
  5. 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 ScholarGoogle Scholar
  6. 6 FINKEL, R. A., AND FISHBURN, J. P. Parallelism in alpha-beta search. Arti{. InteU. 19, 1 (Sept. 1982).Google ScholarGoogle Scholar
  7. 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 ScholarGoogle Scholar
  8. 8 FISHBURN, J. A., AND FINKEL, R. A. Quotient networks. IEEE Trans. Cornput. C-31, 4 (Apr. 1982), 288-295.Google ScholarGoogle Scholar
  9. 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 ScholarGoogle Scholar
  10. 10 GELERNTER, D. Generative communication in Linda. ACM Trans. Program. Lang. Syst. (Jan. 1985), 80-112. Google ScholarGoogle Scholar
  11. 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 ScholarGoogle Scholar
  12. 12 IMAI, M., FUKUMURA, T., AND YOSHIDA, Y. A parallelized branch-and-bound algorithm: Implementation and efficiency. Syst. Comput. Control 10, 3 (1979).Google ScholarGoogle Scholar
  13. 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 ScholarGoogle Scholar
  14. 14 KNWrH, D. E., AND MOORE, R.W. An analysis of alpha-beta pruning. Arti{. lntelL 6, 4 (Winter 1975), 293-326.Google ScholarGoogle Scholar
  15. 15 LAI, T.-H., AND SAHNI, S. Anomalies in parallel branch-and-bound algorithms. Commun. ACM 27, 6 (June 1984), 594-602. Google ScholarGoogle Scholar
  16. 16 LAI, T.-H. AND SPRAGUE, A. Performance of branch-and-bound algorithms. IEEE Trans. Comput. C-34 (Oct. 1985), 962-964.Google ScholarGoogle Scholar
  17. 17 LAWLER, E. L., AND WOOD, D. Branch and bound methods: A survey. Oper. Res. 14, 4 (1966), 699-719.Google ScholarGoogle Scholar
  18. 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 ScholarGoogle Scholar
  19. 19 LIVNY, M., AND MANBER, U. Distributed computation via active messages. IEEE Trans. Comput. C-34, 12 (Dec. 1985), 1185-1190.Google ScholarGoogle Scholar
  20. 20 MANBER, U. On maintaining dynamic information in a concurrent environment. SIAM J. Cornput. 15, 4 (Nov. 1986), 1130-1142. Google ScholarGoogle Scholar
  21. 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 ScholarGoogle Scholar
  22. 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 ScholarGoogle Scholar
  23. 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 ScholarGoogle Scholar
  24. 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 ScholarGoogle Scholar
  25. 25 VORNBERGER, O. Graph problems solved on a parallel system. Workshop on Graph Theoretic Concepts in Computer Science, Schloss Schwanberg, West Germany (1985).Google ScholarGoogle Scholar
  26. 26 WIRTH, N. Modula: A language for modular multiprogramming. Softw. Prac. Exper. 7, 1 (1977), 3-35.Google ScholarGoogle Scholar

Index Terms

  1. DIB—a distributed implementation of backtracking

                Recommendations

                Reviews

                Martin Rem

                Writing distributed programs is significantly more difficult than writing sequential programs. DIB is a software package aimed at enabling novice programmers to write distributed programs in a basically sequential manner. The application area of the package is backtracking or, in other words, tree searching. The package may be implemented on networks of machines that communicate by message passing. It supports dynamic load balancing and allows the setting of global bounds to restrict the search space dynamically. The only requirement on the computation is that searches in subtrees are independent. The user of the package has to provide three procedures: one to generate the root, one to generate (roots of) subtrees, and one to distill the answers. An interesting feature of the package is its capability for fault tolerance; machines that are idle duplicate the computations of other machines. The paper reports the results of experiments in applying the traveling salesperson and the eight queens problem, using moderately sized networks (fewer than 16 machines).

                Access critical reviews of Computing literature here

                Become a reviewer for Computing Reviews.

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in

                Full Access

                • Published in

                  cover image ACM Transactions on Programming Languages and Systems
                  ACM Transactions on Programming Languages and Systems  Volume 9, Issue 2
                  April 1987
                  171 pages
                  ISSN:0164-0925
                  EISSN:1558-4593
                  DOI:10.1145/22719
                  Issue’s Table of Contents

                  Copyright © 1987 ACM

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 20 March 1987
                  Published in toplas Volume 9, Issue 2

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • article

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader