Algorithmic Skeletons for Branch and Bound

  • Michael Poldner
  • Herbert Kuchen
Part of the Communications in Computer and Information Science book series (CCIS, volume 10)


Algorithmic skeletons are predefined components for parallel programming. We will present a skeleton for branch & bound problems for MIMD machines with distributed memory. This skeleton is based on a distributed work pool. We discuss two variants, one with supply-driven work distribution and one with demand-driven work distribution. This approach is compared to a simple branch & bound skeleton with a centralized work pool, which has been used in a previous version of our skeleton library Muesli. Based on experimental results for two example applications, namely the n-puzzle and the traveling salesman problem, we show that the distributed work pool is clearly better and enables good runtimes and in particular scalability. Moreover, we discuss some implementation aspects such as termination detection as well as overlapping computation and communication.


Parallel Computing Algorithmic Skeletons Branch & Bound Load Distribution Termination Detection 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Gropp, W., Lusk, E., Skjellum, A.: Using MPI. MIT Press, Cambridge (1999)Google Scholar
  2. 2.
    MPI: Message passing interface forum, mpi. In: MPI: A Message-Passing Interface Standard (2006),
  3. 3.
    Cole, M.: Algorithmic Skeletons: Structured Management of Parallel Computation. MIT Press, Cambridge (1989)zbMATHGoogle Scholar
  4. 4.
    Cole, M.: The skeletal parallelism web page (2006),
  5. 5.
    Bisseling, I.F.R.: Mondriaan sparse matrix partitioning for attacking cryptosystems – a case study. In: Proceedings of ParCo 2005, Malaga (to appear, 2005)Google Scholar
  6. 6.
    Botorog, G.H., Kuchen, H.: Efficient parallel programming with algorithmic skeletons. In: Fraigniaud, P., Mignotte, A., Bougé, L., Robert, Y. (eds.) Euro-Par 1996. LNCS, vol. 1123, pp. 718–731. Springer, Heidelberg (1996)Google Scholar
  7. 7.
    Botorog, G.H., Kuchen, H.: Efficient high-level parallel programming. Theoretical Computer Science 196, 71–107 (1998)zbMATHCrossRefGoogle Scholar
  8. 8.
    Kuchen, H., Plasmeijer, R., Stoltze, H.: Efficient distributed memory implementation of a data parallel functional language. In: Halatsis, C., Philokyprou, G., Maritsas, D., Theodoridis, S. (eds.) PARLE 1994. LNCS, vol. 817, Springer, Heidelberg (1994)Google Scholar
  9. 9.
    Kuchen, H.: A skeleton library. In: Monien, B., Feldmann, R.L. (eds.) Euro-Par 2002. LNCS, vol. 2400, pp. 620–629. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  10. 10.
    Kuchen, H.: Optimizing sequences of skeleton calls. In: Lengauer, C., Batory, D., Consel, C., Odersky, M. (eds.) Domain-Specific Program Generation. LNCS, vol. 3016, pp. 254–273. Springer, Heidelberg (2004)Google Scholar
  11. 11.
    Benoit, A., Cole, M., Hillston, J., Gilmore, S.: Flexible skeletal programming with eskel. In: Cunha, J.C., Medeiros, P.D. (eds.) Euro-Par 2005. LNCS, vol. 3648, pp. 761–770. Springer, Heidelberg (2005)Google Scholar
  12. 12.
    Cole, M.: Bringing skeletons out of the closet: A pragmatic manifesto for skeletal parallel programming. Parallel Computing 30(3), 389–406 (2004)CrossRefGoogle Scholar
  13. 13.
    Hofstedt, P.: Task parallel skeletons for irregularly structured problems. In: Pritchard, D., Reeve, J.S. (eds.) Euro-Par 1998. LNCS, vol. 1470, pp. 676–681. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  14. 14.
    Kuchen, H., Cole, M.: The integration of task and data parallel skeletons. Parallel Processing Letters 12(2), 141–155 (2002)CrossRefGoogle Scholar
  15. 15.
    Pelagatti, S.: Task and data parallelism in p3l. In: Rabhi, F.A., Gorlatch, S. (eds.) Patterns and Skeletons for Parallel and Distributed Computing, pp. 155–186. Springer, Heidelberg (2003)Google Scholar
  16. 16.
    Nemhauser, G.L., Wolsey, L.A.: Integer and combinatorial optimization. Wiley, Chichester (1999)zbMATHGoogle Scholar
  17. 17.
    Little, J.D.C., Murty, K.G., Sweeny, D.W., Karel, C.: An algorithm for the traveling salesman problem. Operations Research 11, 972–989 (1963)zbMATHCrossRefGoogle Scholar
  18. 18.
    Alba, E., Almeida, F., et al.: Mallba: A library of skeletons for combinatorial search. In: Monien, B., Feldmann, R.L. (eds.) Euro-Par 2002. LNCS, vol. 2400, pp. 927–932. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  19. 19.
    Almeida, F., Dorta, I., et al.: Mallba: Branch and bound paradigm. In: Technical Report DT-01-2, University of La Laguna, Spain, Dpto. Estadistica, I.O. y Computacion (2001)Google Scholar
  20. 20.
    Dorta, I., Leon, C., Rodriguez, C., Rojas, A.: Parallel skeletons for divide and conquer and branch and bound techniques. In: Proc. 11th Euromicro Conference on Parallel, Distributed and Network-based Processing (PDP2003) (2003)Google Scholar
  21. 21.
    Kuchen, H.: The skeleton library web pages (2006),
  22. 22.
    Quinn, M.J.: Parallel Computing: Theory and Practice. McGraw-Hill, New York (1994)Google Scholar
  23. 23.
    Clausen, J., Perregaard, M.: On the best search strategy in parallel branch-and-bound: Best-first search versus lazy depth-first search search. Annals of Operations Research 90, 1–17 (1999)zbMATHCrossRefMathSciNetGoogle Scholar
  24. 24.
    Shinano, Y., Higaki, M., Hirabayashi, R.: A generalized utility for parallel branch and bound algorithms. In: Proc. 7th IEEE Symposium on Parallel and Distributed Processing, pp. 392–401. IEEE Computer Society Press, Los Alamitos (1995)Google Scholar
  25. 25.
    Shinano, Y., Higaki, M., Hirabayashi, R.: Control schemes in a generalized utility for parallel branch and bound algorithms. In: Proc. 11th International Parallel Processing Symposium, pp. 621–627. IEEE, Los Alamitos (1997)CrossRefGoogle Scholar
  26. 26.
    Xu, Y., Ralphs, T., Ladyi, L., Salzman, M.: Alps: A framework for implementing parallel tree search algorithms. In: Proc. 9th INFORMS Computing Society Conference (2005)Google Scholar
  27. 27.
    Trienekens, H.: Parallel branch & bound algorithms. PhD Thesis, University of Rotterdam (1990)Google Scholar
  28. 28.
    Henrich, D.: Initialization of parallel branch-and-bound algorithms. In: Proc. 2nd International Workshop on Parallel Processing for Artificial Intelligence (PPAI-1993). Elsevier, Amsterdam (1994)Google Scholar
  29. 29.
    Henrich, D.: Local load balancing for data-parallel branch-and-bound. In: Proc. Massively Parallel Processing Applications and Development, pp. 227–234 (1994)Google Scholar
  30. 30.
    Henrich, D.: Lastverteilung fuer feinkoernig parallelisiertes branch-and-bound. PhD Thesis, TH Karlsruhe (1995)Google Scholar
  31. 31.
    Lüling, R., Monien, B.: Load balancing for distributed branch and bound algorithms. In: Proc. 6th International Parallel Processing Symposium (IPPS 1992), pp. 543–549. IEEE, Los Alamitos (1992)CrossRefGoogle Scholar
  32. 32.
    Mahapatra, N., Dutt, S.: Adaptive quality equalizing: High-performance load balancing for parallel branch-and-bound across applications and computing systems. In: Proc. International Parallel Processing and Distributed Processing Symposium (IPDPS 1998) (1998)Google Scholar
  33. 33.
    Sanders, P.: Tree shaped computations as a model for parallel applications. In: Proc. Workshop on Application Based Load Balancing (ALV 1998), TU Munich (1998)Google Scholar
  34. 34.
    Shina, A., Kalé, L.: A load balancing strategy for prioritized execution of tasks. In: Lehrmann Madsen, O. (ed.) ECOOP 1992. LNCS, vol. 615, Springer, Heidelberg (1992)Google Scholar
  35. 35.
    ZIV: Ziv-cluster (2006),
  36. 36.
    Myricom: The myricom homepage (2006),
  37. 37.
    Reinelt, G.: Tsplib – a traveling salesman problem library. ORSA Journal on Computing 3, 376–384 (1991), (gr17)zbMATHGoogle Scholar
  38. 38.
    Lai, T., S.S.: Anomalies in parallel branch-and-bound algorithms. Communications of the ACM 27, 594–602 (1984)zbMATHCrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Michael Poldner
    • 1
  • Herbert Kuchen
    • 1
  1. 1.University of MünsterDepartment of Information SystemsMünsterGermany

Personalised recommendations