Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Gropp, W., Lusk, E., Skjellum, A.: Using MPI. MIT Press, Cambridge (1999)
MPI: Message passing interface forum, mpi. In: MPI: A Message-Passing Interface Standard (2006), http://www.mpi-forum.org/docs/mpi-11-html/mpi-report.html
Cole, M.: Algorithmic Skeletons: Structured Management of Parallel Computation. MIT Press, Cambridge (1989)
Cole, M.: The skeletal parallelism web page (2006), http://homepages.inf.ed.ac.uk/mic/Skeletons/
Bisseling, I.F.R.: Mondriaan sparse matrix partitioning for attacking cryptosystems – a case study. In: Proceedings of ParCo 2005, Malaga (to appear, 2005)
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)
Botorog, G.H., Kuchen, H.: Efficient high-level parallel programming. Theoretical Computer Science 196, 71–107 (1998)
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)
Kuchen, H.: A skeleton library. In: Monien, B., Feldmann, R.L. (eds.) Euro-Par 2002. LNCS, vol. 2400, pp. 620–629. Springer, Heidelberg (2002)
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)
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)
Cole, M.: Bringing skeletons out of the closet: A pragmatic manifesto for skeletal parallel programming. Parallel Computing 30(3), 389–406 (2004)
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)
Kuchen, H., Cole, M.: The integration of task and data parallel skeletons. Parallel Processing Letters 12(2), 141–155 (2002)
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)
Nemhauser, G.L., Wolsey, L.A.: Integer and combinatorial optimization. Wiley, Chichester (1999)
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)
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)
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)
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)
Kuchen, H.: The skeleton library web pages (2006), http://www.wi.uni-muenster.de/PI/forschung/Skeletons/index.php
Quinn, M.J.: Parallel Computing: Theory and Practice. McGraw-Hill, New York (1994)
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)
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)
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)
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)
Trienekens, H.: Parallel branch & bound algorithms. PhD Thesis, University of Rotterdam (1990)
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)
Henrich, D.: Local load balancing for data-parallel branch-and-bound. In: Proc. Massively Parallel Processing Applications and Development, pp. 227–234 (1994)
Henrich, D.: Lastverteilung fuer feinkoernig parallelisiertes branch-and-bound. PhD Thesis, TH Karlsruhe (1995)
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)
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)
Sanders, P.: Tree shaped computations as a model for parallel applications. In: Proc. Workshop on Application Based Load Balancing (ALV 1998), TU Munich (1998)
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)
ZIV: Ziv-cluster (2006), http://zivcluster.uni-muenster.de/
Myricom: The myricom homepage (2006), http://www.myri.com/
Reinelt, G.: Tsplib – a traveling salesman problem library. ORSA Journal on Computing 3, 376–384 (1991), http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/ (gr17)
Lai, T., S.S.: Anomalies in parallel branch-and-bound algorithms. Communications of the ACM 27, 594–602 (1984)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Poldner, M., Kuchen, H. (2008). Algorithmic Skeletons for Branch and Bound. In: Filipe, J., Shishkov, B., Helfert, M. (eds) Software and Data Technologies. ICSOFT 2006. Communications in Computer and Information Science, vol 10. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-70621-2_17
Download citation
DOI: https://doi.org/10.1007/978-3-540-70621-2_17
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-70619-9
Online ISBN: 978-3-540-70621-2
eBook Packages: Computer ScienceComputer Science (R0)