PEBBL: an object-oriented framework for scalable parallel branch and bound

Parallel Enumeration and Branch-and-Bound Library (PEBBL) is a C++ class library implementing the underlying operations needed to support a wide variety of branch-and-bound algorithms on MPI-based message-passing distributed-memory parallel computing environments. PEBBL can be customized to support application-specific operations, while managing the generic aspects of branch and bound, such as maintaining the active subproblem pool across multiple processors, load balancing, and termination detection. PEBBL is designed to provide highly scalable performance on large numbers of processor cores. We describe the basics of PEBBL’s architecture, with emphasis on the features most critical to is high scalability, including its flexible two-level load balancing architecture and its support for a synchronously parallel ramp-up phase. We also present an example application: the maximum monomial agreement problem arising from certain machine learning applications. For sufficiently difficult problem instances, we show essentially linear speedup on over 6000 processor cores, demonstrating a new state of the art in scalability for branch-and-bound implementations. We also show how processor cache effects can lead to reproducibly superlinear speedups.

[1]  Thorsten Koch,et al.  ParaSCIP: A Parallel Extension of SCIP , 2010, CHPC.

[2]  R. Schapire,et al.  Toward efficient agnostic learning , 1992, COLT '92.

[3]  Anthony Skjellum,et al.  A High-Performance, Portable Implementation of the MPI Message Passing Interface Standard , 1996, Parallel Comput..

[4]  Matthew J. Saltzman,et al.  Parallel branch, cut, and price for large-scale discrete optimization , 2003, Math. Program..

[5]  Paraskevas Evripidou,et al.  Parallel Implementations of the Selection Problem: A Case Study , 2000, International Journal of Parallel Programming.

[6]  Toshihide Ibaraki,et al.  Logical analysis of numerical data , 1997, Math. Program..

[7]  Manuel Blum,et al.  Linear time bounds for median computations , 1972, STOC.

[8]  Hyogun Lee,et al.  A proportional-share scheduler for multimedia applications , 1997, Proceedings of IEEE International Conference on Multimedia Computing and Systems.

[9]  Jonathan Eckstein,et al.  Parallel Branch-and-Bound Algorithms for General Mixed Integer Programming on the CM-5 , 1994, SIAM J. Optim..

[10]  David A. Bader,et al.  Parallel Algorithm Design for Branch and Bound , 2005 .

[11]  Guy E. Blelloch,et al.  Scans as Primitive Parallel Operations , 1989, ICPP.

[12]  Noam Goldberg,et al.  An Improved Branch-and-Bound Method for Maximum Monomial Agreement , 2012, INFORMS J. Comput..

[13]  Victor J. Rayward-Smith,et al.  Efficiency considerations in the implementation of parallel branch-and-bound , 1993, Ann. Oper. Res..

[14]  Salah Dowaji,et al.  Building a parallel branch and bound library , 1996, Solving Combinatorial Optimization Problems in Parallel.

[15]  Matthew J. Saltzman,et al.  Computational Experience with a Software Framework for Parallel Integer Programming , 2009, INFORMS J. Comput..

[16]  C. Wojcik Springer international publishing switzerland , 2016 .

[17]  Jack Dongarra,et al.  MPI: The Complete Reference , 1996 .

[18]  Thorsten Koch,et al.  Could we use a million cores to solve an integer program? , 2012, Mathematical Methods of Operations Research.

[19]  Friedemann Mattern,et al.  Algorithms for distributed termination detection , 1987, Distributed Computing.

[20]  Cynthia A. Phillips,et al.  Pico: An Object-Oriented Framework for Parallel Branch and Bound * , 2001 .

[21]  Michael Jünger,et al.  The ABACUS system for branch‐and‐cut‐and‐price algorithms in integer programming and combinatorial optimization , 2000, Softw. Pract. Exp..

[22]  Ron Alterovitz,et al.  Parallel sampling-based motion planning with superlinear speedup , 2012, 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems.

[23]  Srinivas Aluru,et al.  Mixed mode matrix multiplication , 2002, Proceedings. IEEE International Conference on Cluster Computing.

[24]  Yuji Shinano,et al.  Control schemes in a generalized utility for parallel branch-and-bound algorithms , 1997, Proceedings 11th International Parallel Processing Symposium.

[25]  Tarek Menouer,et al.  Partitioning Methods to Parallelize Constraint Programming Solver Using the Parallel Framework Bobpp , 2013, Advanced Computational Methods for Knowledge Engineering.

[26]  W. Daniel Hillis,et al.  The connection machine , 1985 .

[27]  Cynthia A. Phillips,et al.  Resource Management in a Parallel Mixed Integer Programming Package , 1997 .

[28]  Martin Schulz,et al.  Open | SpeedShop: An open source infrastructure for parallel performance analysis , 2008, Sci. Program..

[29]  Yuji Shinano,et al.  A generalized utility for parallel branch and bound algorithms , 1995, Proceedings.Seventh IEEE Symposium on Parallel and Distributed Processing.

[30]  Dafydd Gibbon,et al.  1 User’s guide , 1998 .

[31]  Michael Jünger,et al.  The ABACUS system for branch‐and‐cut‐and‐price algorithms in integer programming and combinatorial optimization , 2000, Softw. Pract. Exp..

[32]  Charles J. Daniels,et al.  A SIMD Approach to Parallel Heuristic Search , 1993, Artif. Intell..

[33]  Michael Jünger,et al.  Introduction to ABACUS - a branch-and-cut system , 1998, Oper. Res. Lett..

[34]  Thomas Polzer,et al.  Portable parallel branch-and-bound library(ppbb-lib): User manual version 1 , 1996 .

[35]  Vipin Kumar,et al.  Unstructured tree search on SIMD parallel computers: a summary of results , 1992, Proceedings Supercomputing '92.

[36]  Jens Viggo Clausen Parallel Branch and Bound — Principles and Personal Experiences , 1997 .

[37]  David A. Bader An improved, randomized algorithm for parallel selection with an experimental study , 2004, J. Parallel Distributed Comput..

[38]  El-Ghazali Talbi,et al.  Fault-Tolerant Mechanism for Hierarchical Branch and Bound Algorithm , 2011, 2011 IEEE International Symposium on Parallel and Distributed Processing Workshops and Phd Forum.

[39]  Xingfu Wu,et al.  Performance Evaluation, Prediction and Visualization of Parallel Systems , 1999, The Kluwer International Series on Asian Studies in Computer and Information Science.

[40]  Jonathan Eckstein Control strategies for parallel mixed integer branch and bound , 1994, Proceedings of Supercomputing '94.

[41]  Martin W. P. Savelsbergh,et al.  MINTO, a mixed INTeger optimizer , 1994, Oper. Res. Lett..

[42]  Zonghao Gu,et al.  Generating Multiple Solutions for Mixed Integer Programming Problems , 2007, IPCO.

[43]  Cynthia A. Phillips,et al.  Massively Parallel Mixed-Integer Programming: Algorithms and Applications , 2006, Parallel Processing for Scientific Computing.

[44]  Matthew J. Saltzman,et al.  A Library Hierarchy for Implementing Scalable Parallel Search Algorithms , 2004, The Journal of Supercomputing.

[45]  Michael Jünger,et al.  Branch-and-Cut Algorithms for Combinatorial Optimization and Their Implementation in ABACUS , 2000, Computational Combinatorial Optimization.

[46]  Jonathan Eckstein,et al.  How Much Communication Does Parallel Branch and Bound Need? , 1997, INFORMS J. Comput..

[47]  Leslie E. Trotter,et al.  Branch, Cut, and Price: Sequential and Parallel , 2000, Computational Combinatorial Optimization.

[48]  Tony Brewer A highly scalable system utilizing up to 128 PA-RISC processors , 1995, Digest of Papers. COMPCON'95. Technologies for the Information Superhighway.

[49]  Carl A. Waldspurger,et al.  Lottery and stride scheduling: flexible proportional-share resource management , 1995 .

[50]  Ayhan Demiriz,et al.  Linear Programming Boosting via Column Generation , 2002, Machine Learning.

[51]  Jens Clausen,et al.  On the best search strategy in parallel branch‐and‐bound:Best‐First Search versus Lazy Depth‐First Search , 1999, Ann. Oper. Res..

[52]  Jonathan Eckstein Distributed versus Centralized Storage and Control for Parallel Branch and Bound: Mixed Integer Programming on the CM-5 , 1997, Comput. Optim. Appl..

[53]  Dimitrios Gunopulos,et al.  Computing the Maximum Bichromatic Discrepancy with Applications to Computer Graphics and Machine Learning , 1996, J. Comput. Syst. Sci..

[54]  Richard L. Graham,et al.  Open MPI: A Flexible High Performance MPI , 2005, PPAM.

[55]  J. Clausen,et al.  Branch and Bound Algorithms-Principles and Examples , 2003 .