Replicable parallel branch and bound search

Abstract Combinatorial branch and bound searches are a common technique for solving global optimisation and decision problems. Their performance often depends on good search order heuristics, refined over decades of algorithms research. Parallel search necessarily deviates from the sequential search order, sometimes dramatically and unpredictably, e.g. by distributing work at random. This can disrupt effective search order heuristics and lead to unexpected and highly variable parallel performance. The variability makes it hard to reason about the parallel performance of combinatorial searches. This paper presents a generic parallel branch and bound skeleton, implemented in Haskell, with replicable parallel performance. The skeleton aims to preserve the search order heuristic by distributing work in an ordered fashion, closely following the sequential search order. We demonstrate the generality of the approach by applying the skeleton to 40 instances of three combinatorial problems: Maximum Clique, 0/1 Knapsack and Travelling Salesperson. The overheads of our Haskell skeleton are reasonable: giving slowdown factors of between 1.9 and 6.2 compared with a class-leading, dedicated, and highly optimised C++ Maximum Clique solver. We demonstrate scaling up to 200 cores of a Beowulf cluster, achieving speedups of 100x for several Maximum Clique instances. We demonstrate low variance of parallel performance across all instances of the three combinatorial problems and at all scales up to 200 cores, with median Relative Standard Deviation (RSD) below 2%. Parallel solvers that do not follow the sequential search order exhibit far higher variance, with median RSD exceeding 85% for Knapsack.

[1]  Qinghua Wu,et al.  A review on algorithms for maximum clique problems , 2015, Eur. J. Oper. Res..

[2]  R. Prim Shortest connection networks and some generalizations , 1957 .

[3]  Bernard Gendron,et al.  Parallel Branch-and-Branch Algorithms: Survey and Synthesis , 1994, Oper. Res..

[4]  Ciaran McCreesh,et al.  Reducing the Branching in a Branch and Bound Algorithm for the Maximum Clique Problem , 2014, CP.

[5]  Benjamin W. Wah,et al.  Coping with Anomalies in Parallel Branch-and-Bound Algorithms , 1986, IEEE Transactions on Computers.

[6]  Alex Rapaport,et al.  Mpi-2: extensions to the message-passing interface , 1997 .

[7]  J. Jeffry Howbert,et al.  The Maximum Clique Problem , 2007 .

[8]  Pablo San Segundo,et al.  Relaxed approximate coloring in exact maximum clique search , 2014, Comput. Oper. Res..

[9]  M. Trick,et al.  Cliques, Coloring, and Satisfiability: Second DIMACS Implementation Challenge, Workshop, October 11-13, 1993 , 1996 .

[10]  Atsuhiro Takasu,et al.  A clique-based method for the edit distance between unordered trees and its application to analysis of glycan structures , 2011, BMC Bioinformatics.

[11]  Christine Solnon,et al.  Clique and Constraint Models for Maximum Common (Connected) Subgraph Problems , 2016, CP.

[12]  Sanjay Ghemawat,et al.  MapReduce: Simplified Data Processing on Large Clusters , 2004, OSDI.

[13]  Peyton Jones,et al.  Haskell 98 language and libraries : the revised report , 2003 .

[15]  Marco Danelutto,et al.  Skeleton-based parallel programming: Functional and parallel semantics in a single shot , 2007, Comput. Lang. Syst. Struct..

[16]  Tsuyoshi Murata,et al.  {m , 1934, ACML.

[17]  Naomi Nishimura,et al.  On scalable parallel recursive backtracking , 2015, J. Parallel Distributed Comput..

[18]  Philip W. Trinder,et al.  Towards Generic Scalable Parallel Combinatorial Search , 2017, PASCO@ISSAC.

[19]  Pablo San Segundo,et al.  Reusing the Same Coloring in the Child Nodes of the Search Tree for the Maximum Clique Problem , 2015, LION.

[20]  Hua Jiang,et al.  Incremental MaxSAT Reasoning to Reduce Branches in a Branch-and-Bound Algorithm for MaxClique , 2015, LION.

[21]  Pablo San Segundo,et al.  An exact bit-parallel algorithm for the maximum clique problem , 2011, Comput. Oper. Res..

[22]  Arie de Bruin,et al.  Asynchronous Parallel Branch and Bound and Anomalies , 1995, IRREGULAR.

[23]  Dusanka Janezic,et al.  Exact Parallel Maximum Clique Algorithm for General and Protein Graphs , 2013, J. Chem. Inf. Model..

[24]  Wilbert E. Wilhelm,et al.  Clique-detection models in computational biochemistry and genomics , 2006, Eur. J. Oper. Res..

[25]  James Reinders,et al.  Intel threading building blocks - outfitting C++ for multi-core processor parallelism , 2007 .

[26]  Toby Walsh Depth-bounded Discrepancy Search , 1997, IJCAI.

[27]  Ashraf Aboulnaga,et al.  Scalable maximum clique computation using MapReduce , 2013, 2013 IEEE 29th International Conference on Data Engineering (ICDE).

[28]  Bradley C. Kuszmaul,et al.  Cilk: an efficient multithreaded runtime system , 1995, PPOPP '95.

[29]  Pablo San Segundo,et al.  Fast exact feature based data correspondence search with an efficient bit-parallel MCP solver , 2010, Applied Intelligence.

[30]  Etsuji Tomita,et al.  An Efficient Branch-and-Bound Algorithm for Finding a Maximum Clique , 2003, DMTCS.

[31]  Michael A. Langston,et al.  The maximum clique enumeration problem: algorithms, applications, and implementations , 2011, BMC Bioinformatics.

[32]  Simon L. Peyton Jones,et al.  Type classes in Haskell , 1994, TOPL.

[33]  Gilbert Laporte,et al.  The vehicle routing problem: An overview of exact and approximate algorithms , 1992 .

[34]  Dusanka Janezic,et al.  A Branch and Bound Algorithm for Matching Protein Structures , 2007, ICANNGA.

[35]  Michael A. Langston,et al.  The Maximum Clique Enumeration Problem: Algorithms, Applications and Implementations , 2011, ISBRA.

[36]  Enrique Alba,et al.  MALLBA: A Library of Skeletons for Combinatorial Optimisation (Research Note) , 2002, Euro-Par.

[37]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[38]  Gerhard Reinelt,et al.  TSPLIB - A Traveling Salesman Problem Library , 1991, INFORMS J. Comput..

[39]  Werner Vogels,et al.  Building reliable distributed systems at a worldwide scale demands trade-offs between consistency and availability. , 2022 .

[40]  Claude-Guy Quimper,et al.  Parallel Depth-Bounded Discrepancy Search , 2014, CPAIOR.

[41]  David Pisinger,et al.  Where are the hard knapsack problems? , 2005, Comput. Oper. Res..

[42]  Murray Cole,et al.  Algorithmic Skeletons: Structured Management of Parallel Computation , 1989 .

[43]  Steve Gregory,et al.  Detecting communities in networks by merging cliques , 2009, 2009 IEEE International Conference on Intelligent Computing and Intelligent Systems.

[44]  Harvey M. Salkin,et al.  The knapsack problem: A survey , 1975 .

[45]  D. Goodin The cambridge dictionary of statistics , 1999 .

[46]  Teodor Gabriel Crainic,et al.  Parallel Branch‐and‐Bound Algorithms , 2006 .

[47]  Makoto Haraguchi,et al.  Finding Conceptual Document Clusters with Improved Top-N Formal Concept Search , 2006, 2006 IEEE/WIC/ACM International Conference on Web Intelligence (WI 2006 Main Conference Proceedings)(WI'06).

[48]  Paolo Toth,et al.  Knapsack Problems: Algorithms and Computer Implementations , 1990 .

[49]  Etsuji Tomita,et al.  An Efficient Branch-and-bound Algorithm for Finding a Maximum Clique with Computational Experiments , 2001, J. Glob. Optim..

[50]  Hua Jiang,et al.  Combining MaxSAT Reasoning and Incremental Upper Bound for the Maximum Clique Problem , 2013, 2013 IEEE 25th International Conference on Tools with Artificial Intelligence.

[51]  Alan Bundy,et al.  Proceedings of the Fourteenth International Joint Conference on Artificial Intelligence - IJCAI-95 , 1995 .

[52]  Patrick Prosser,et al.  Exact Algorithms for Maximum Clique: A Computational Study , 2012, Algorithms.

[53]  Pablo San Segundo,et al.  Infra-chromatic bound for exact maximum clique search , 2015, Comput. Oper. Res..

[54]  S. Martello,et al.  An upper bound for the zero-one knapsack problem and a branch and bound algorithm , 1977 .

[55]  Peter J. Stuckey,et al.  Confidence-Based Work Stealing in Parallel Constraint Programming , 2009, CP.

[56]  Sartaj Sahni,et al.  Anomalies in Parallel Branch-and-Bound Algorithms , 1984 .

[57]  Herbert Kuchen,et al.  Algorithmic Skeletons for Branch and Bound , 2006, ICSOFT.

[58]  P ? ? ? ? ? ? ? % ? ? ? ? , 1991 .

[59]  Sheldon H. Jacobson,et al.  Branch-and-bound algorithms: A survey of recent advances in searching, branching, and pruning , 2016, Discret. Optim..

[60]  Jiří Matoušek,et al.  Integer Programming and LP Relaxation , 2007 .

[61]  Béla Lantos,et al.  Formation Control of Quadrotor Helicopters with Guaranteed Collision Avoidance via Safe Path , 2012 .

[62]  Shinya Takahashi,et al.  A Simple and Faster Branch-and-Bound Algorithm for Finding a Maximum Clique , 2010, WALCOM.

[63]  Rohit Chandra,et al.  Parallel programming in openMP , 2000 .

[64]  D. K. Arvind,et al.  Languages and Compilers for Parallel Computing , 2014, Lecture Notes in Computer Science.

[65]  Teodor Gabriel Crainic,et al.  PARALLEL BRANCH-AND-BOUND ALGORITHMS: SURVEY AND SYNTHESIS , 1993 .

[66]  Matthew L. Ginsberg,et al.  Limited Discrepancy Search , 1995, IJCAI.

[67]  Pablo San Segundo,et al.  An improved bit parallel exact maximum clique algorithm , 2013, Optim. Lett..

[68]  Stephen L. Olivier,et al.  UTS: An Unbalanced Tree Search Benchmark , 2006, LCPC.

[69]  Ciaran McCreesh,et al.  The Shape of the Search Tree for the Maximum Clique Problem and the Implications for Parallel Branch and Bound , 2014, ACM Trans. Parallel Comput..

[70]  Philip W. Trinder,et al.  The HdpH DSLs for scalable reliable computation , 2014, Haskell '14.

[71]  Ciaran McCreesh,et al.  Multi-Threading a State-of-the-Art Maximum Clique Algorithm , 2013, Algorithms.