Alps: A Framework for Implementing Parallel Tree Search Algorithms
Operations Research/Computer Science Interfaces Series
ALPS is a framework for implementing and parallelizing tree search algorithms. It employs a number of features to improve scalability and is designed specifically to support the implementation of data intensive algorithms, in which large amounts of knowledge are generated and must be maintained and shared during the search. Implementing such algorithms in a scalable manner is challenging both because of storage requirements and because of communications overhead incurred in the sharing of data.
... he sharing of data. In this abstract, we describe the design of ALPS and how the design addresses these challenges. We present two sample applications built with ALPS and preliminary computational results. A variety of existing software frameworks are based on tree search. For mixed-integer programmingthe application area we are most interested in-most packages employ a sophisticated variant of branch and bound. Among the offerings for solving generic mixed-integer programs are bc-opt , FATCOP , MIPO , PARINO , SIP , SBB , GLPK , and bonsaiG . Of this list, FATCOP and PARINO are parallel codes. Commercial offerings include ILOG's CPLEX, IBM's OSL (soon to be discontinued), and Dash's XPRESS. Generic frameworks that facilitate extensive user customization of the underlying algorithm include SYMPHONY , ABACUS , BCP , and MINTO , of which SYMPHONY and BCP are parallel codes. Other frameworks for parallel branch and bound include BoB , PICO , PPBB-Lib , and PUBB . Good overviews and taxonomies of parallel branch and bound are provided in both  and . Eckstein et al.  also provides a good overview of the implementation of parallel branch and bound. A substantial number of papers have been written specifically about the application of parallel branch and bound to discrete optimization problems, including [3, 8, 13, 28] .