Abstract
In this chapter, we provide an overview of the current state of the art with respect to solution of mixed integer linear optimization problems (MILPs) in parallel. Sequential algorithms for solving MILPs have improved substantially in the last two decades and commercial MILP solvers are now considered effective off-the-shelf tools for optimization. Although concerted development of parallel MILP solvers has been underway since the 1990s, the impact of improvements in sequential solution algorithms has been much greater than that which came from the application of parallel computing technologies. As a result, parallelization efforts have met with only relatively modest success. In addition, improvements to the underlying sequential solution technologies have actually been somewhat detrimental with respect to the goal of creating scalable parallel algorithms. This has made efforts at parallelization an even greater challenge in recent years. With the pervasiveness of multi-core CPUs, current state-of-the-art MILP solvers have now all been parallelized and research on parallelization is once again gaining traction. We summarize the current state-of-the-art and describe how existing parallel MILP solvers can be classified according to various properties of the underlying algorithm.
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
Achterberg, T.: Conflict analysis in mixed integer programming. Discrete Optimization 4(1), 4–20 (2007). Special issue: Mixed Integer Programming
Achterberg, T., Bixby, R.E., Gu, Z., Rothberg, E., Weninger, D.: Presolve reductions in mixed integer programming. ZIB-Report 16-44, Zuse Institute Berlin, (2016)
Achterberg, T., Koch, T., Martin, A.: MIPLIB 2003. ORL 34(4), 1–12 (2006)
Achterberg, T., Wunderling, R.: Mixed integer programming: Analyzing 12 years of progress. In: M. Jünger, G. Reinelt (eds.) Facets of Combinatorial Optimization: Festschrift for Martin Grötschel, pp. 449–481. Springer Berlin Heidelberg (2013)
Alba, E., Almeida, F., Blesa, M., Cabeza, J., Cotta, C., Díaz, M., Dorta, I., Gabarró, J., León, C., Luna, J., Moreno, L., Pablos, C., Petit, J., Rojas, A., Xhafa, F.: Mallba: A library of skeletons for combinatorial optimisation. In: B. Monien, R. Feldmann (eds.) Euro-Par 2002 Parallel Processing: 8th International Euro-Par Conference, Paderborn, Germany, August 27–30, 2002 Proceedings, pp. 927–932. Springer Berlin Heidelberg (2002). https://doi.org/10.1007/3-540-45706-2\_132
Barney, B.: Introduction to Parallel Computing. https://computing.llnl.gov/tutorials/parallel_comp/
Bénichou, M., Cung, V.D., Dowaji, S., Cun, B.L., Mautor, T., Roucairol, C.: Building a parallel branch and bound library. In: Solving Combinatorial Optimization Problems in Parallel, Lecture Notes in Computer Science 1054, pp. 201–231. Springer, Berlin (1996)
Berthold, T.: Primal heuristics for mixed integer programs. Diploma thesis, Technische Universität Berlin (2006)
Berthold, T.: Heuristic algorithms in global MINLP solvers. Ph.D. thesis, Technische Universität Berlin (2014)
Berthold, T., Farmer, J., Heinz, S., Perregaard, M.: Parallelization of the FICO Xpress-Optimizer. In: G.M. Greuel, T. Koch, P. Paule, A. Sommese (eds.) Mathematical Software – ICMS 2016, pp. 251–258. Springer International Publishing (2016). https://doi.org/10.1007/978-3-319-42432-3_31
Berthold, T., Salvagnin, D.: Cloud branching. In: C. Gomes, M. Sellmann (eds.) Integration of AI and OR Techniques in Constraint Programming for Combinatorial Optimization Problems, Lecture Notes in Computer Science, vol. 7874, pp. 28–43. Springer Berlin Heidelberg (2013)
Brüngger, A., Marzetta, A., Fukuda, K., Nievergelt, J.: The parallel search bench ZRAM and its applications. Annals of Operations Research 90(0), 45–63 (1999). https://doi.org/10.1023/a:1018972901171
Bulut, A., Ralphs, T.K.: Disco version 0.95 (2017). https://doi.org/10.5281/zenodo.237107
Bussieck, M.R., Ferris, M.C., Meeraus, A.: Grid-enabled optimization with GAMS. IJoC 21(3), 349–362 (2009). https://doi.org/10.1287/ijoc.1090.0340
Carvajal, R., Ahmed, S., Nemhauser, G., Furman, K., Goel, V., Shao, Y.: Using diversification, communication and parallelism to solve mixed-integer linear programs. Operations Research Letters 42(2), 186–189 (2014). https://doi.org/10.1016/j.orl.2013.12.012
Chen, Q., Ferris, M.C., Linderoth, J.: Fatcop 2.0: Advanced features in an opportunistic mixed integer programming solver. Annals of Operations Research 103(1), 17–32 (2001). https://doi.org/10.1023/a:1012982400848. http://dx.doi.org/10.1023/A:1012982400848
Cornuéjols, G., Karamanov, M., Li, Y.: Early estimates of the size of branchand-bound trees. INFORMS J. on Computing 18(1), 86–96 (2006). https://doi.org/10.1287/ijoc.1040.0107
IBM ILOG CPLEX Optimizer. http://www-01.ibm.com/software/integration/optimization/cplex-optimizer/
Crainic, T., Le Cun, B., Roucairol, C.: Parallel branch-and-bound algorithms. In: E. Talbi (ed.) Parallel Combinatorial Optimization, pp. 1–28. Wiley, New York (2006)
Danna, E.: Performance variability in mixed integer programming (2008). Presentation, Workshop on Mixed Integer Programming (MIP 2008), Columbia University, New York. http://coral.ie.lehigh.edu/~jeff/mip-2008/talks/danna.pdf
Dantzig, G.B., Wolfe, P.: Decomposition principle for linear programs. Operations Research 8(1), 101–111 (1960)
DeNegre, S., Ralphs, T.K.: A branch-and-cut algorithm for bilevel integer programming. In: Proceedings of the Eleventh INFORMS Computing Society Meeting, pp. 65–78 (2009). https://doi.org/10.1007/978-0-387-88843-9_4. http://coral.ie.lehigh.edu/~ted/files/papers/BILEVEL08.pdf
Dinan, J., Olivier, S., Sabin, G., Prins, J., Sadayappan, P., Tseng, C.W.: Dynamic load balancing of unbalanced computations using message passing. In: 2007 IEEE International Parallel and Distributed Processing Symposium, pp. 1–8 (2007). https://doi.org/10.1109/ipdps.2007.370581
Djerrah, A., Cun, B.L., Cung, V.D., Roucairol, C.: Bob++: Framework for solving optimization problems with branch-and-bound methods. In: 2006 15th IEEE International Conference on High Performance Distributed Computing, pp. 369–370 (2006). https://doi.org/10.1109/hpdc.2006.1652188
Dolan, E.D., Moré, J.J.: Benchmarking optimization software with performance profiles. Mathematical Programming 91(2), 201–213 (2002). https://doi.org/10.1007/s101070100263. http://dx.doi.org/10.1007/s101070100263
Eckstein, J.: Control strategies for parallel mixed integer branch and bound. In: Proceedings of the 1994 conference on Supercomputing, pp. 41–48. IEEE Computer Society Press (1994)
Eckstein, J.: Distributed versus centralized storage and control for parallel branch and bound: Mixed integer programming on the CM-5. Comput. Optim. Appl. 7(2), 199–220 (1997). http://dx.doi.org/10.1023/A:1008699010646
Eckstein, J., Hart, W.E., Phillips, C.A.: Pebbl: an object-oriented framework for scalable parallel branch and bound. Mathematical Programming Computation 7(4), 429–469 (2015). https://doi.org/10.1007/s12532-015-0087-1.
Eckstein, J., Phillips, C.A., Hart, W.E.: PEBBL 1.0 user guide (2007)
Eikland, K., Notebaert, P.: lp_solve 5.5.2. http://lpsolve.sourceforge.net
FICO Xpress-Optimizer. http://www.fico.com/en/Products/DMTools/xpress-overview/Pages/Xpress-Optimizer.aspx
Fischetti, M., Lodi, A.: Heuristics in mixed integer programming. In: J.J. Cochran, L.A. Cox, P. Keskinocak, J.P. Kharoufeh, J.C. Smith (eds.) Wiley Encyclopedia of Operations Research and Management Science. John Wiley & Sons, Inc. (2010). Online publication
Fischetti, M., Lodi, A., Monaci, M., Salvagnin, D., Tramontani, A.: Improving branch-and-cut performance by random sampling. Mathematical Programming Computation 8(1), 113–132 (2016)
Fischetti, M., Monaci, M., Salvagnin, D.: Self-splitting of workload in parallel computation. In: H. Simonis (ed.) Integration of AI and OR Techniques in Constraint Programming: 11th International Conference, CPAIOR 2014. Proceedings, pp. 394–404. Springer International Publishing (2014). https://doi.org/10.1007/978-3-319-07046-9\_28
Forrest, J.: CBC MIP solver. http://www.coin-or.org/Cbc
Fourer, R.: Linear programming: Software survey. OR/MS Today 42(3) (2015)
Galati, M.V., Ralphs, T.K., Wang, J.: Computational experience with generic decomposition using the DIP framework. In: Proceedings of RAMP 2012 (2012). http://coral.ie.lehigh.edu/~ted/files/papers/RAMP12.pdf
Gamrath, G., Koch, T., Maher, S.J., Rehfeldt, D., Shinano, Y.: SCIP-Jack—a solver for STP and variants with parallelization extensions. Mathematical Programming Computation 9(2), 231–296 (2017)
Gamrath, G., Koch, T., Martin, A., Miltenberger, M., Weninger, D.: Progress in presolving for mixed integer programming. Mathematical Programming Computation 7(4), 367–398 (2015)
Gendron, B., Crainic, T.G.: Parallel branch-and-branch algorithms: Survey and synthesis. Operations Research 42(6), 1042–1066 (1994). https://doi.org/10.1287/opre.42.6.1042.
Gomory, R.E.: Outline of an algorithm for integer solutions to linear programs. Bulletin of the American Mathematical Society 64(5), 275–278 (1958)
Gottwald, R.L., Maher, S.J., Shinano, Y.: Distributed domain propagation. ZIB-Report 16-71, Zuse Institute Berlin, (2016)
Goux, J.P., Kulkarni, S., Linderoth, J., Yoder, M.: An enabling framework for master-worker applications on the computational grid. In: Proceedings the Ninth International Symposium on High-Performance Distributed Computing, pp. 43–50 (2000). https://doi.org/10.1109/hpdc.2000.868633
Gurobi Optimizer. http://www.gurobi.com/
Hager, G., Wellein, G.: Introduction to High Performance Computing for Scientists and Engineers. CRC Press, Inc., Boca Raton, FL, USA (2010)
Henrich, D.: Initialization of parallel branch-and-bound algorithms. In: Second InternationalWorkshop on Parallel Processing for Artificial Intelligence(PPAI-93) (1993)
Huangfu, Q., Hall, J.: Parallelizing the dual revised simplex method. Tech. rep., arXiv preprint arXiv:1503.01889 (2015)
Janakiram, V.K., Gehringer, E.F., Agrawal, D.P., Mehrotra, R.: A randomized parallel branch-and-bound algorithm. International Journal of Parallel Programming 17(3), 277–301 (1988). https://doi.org/10.1007/bf02427853
Jeannot, E., Mercier, G., Tessier, F.: Topology and affinity aware hierarchical and distributed load-balancing in Charm++. In: Proceedings of the First Workshop on Optimization of Communication in HPC, COM-HPC ’16, pp. 63–72. IEEE Press, Piscataway, NJ, USA (2016). https://doi.org/10.1109/com-hpc.2016.12
Jünger, M., Thienel, S.: Introduction to ABACUS—a branch-and-cut system. Operations Research Letters 22, 83–95 (1998)
Khachiyan, L.G.: A polynomial algorithm in linear programming. Doklady Akademii Nauk SSSR 244(5), 1093–1096 (1979). English translation in Soviet Math. Dokl. 20(1):191–194, 1979
Koch, T., Achterberg, T., Andersen, E., Bastert, O., Berthold, T., Bixby, R.E., Danna, E., Gamrath, G., Gleixner, A.M., Heinz, S., Lodi, A., Mittelmann, H., Ralphs, T., Salvagnin, D., Steffy, D.E., Wolter, K.: MIPLIB 2010. Math. Prog. Comp. 3, 103–163 (2011)
Koch, T., Ralphs, T., Shinano, Y.: Could we use a million cores to solve an integer program? Mathematical Methods of Operations Research 76(1), 67–93 (2012). https://doi.org/10.1007/s00186-012-0390-9.
Kumar, V., Grama, A.Y., Vempaty, N.R.: Scalable load balancing techniques for parallel computers. Journal of Parallel and Distributed Computing 22(1), 60–79 (1994)
Ladányi, L.: BCP: Branch-cut-price framework (2000). https://projects.coin-or.org/Bcp
Land, A.H., Doig, A.G.: An automatic method of solving discrete programming problems. Econometrica 28(3), 497–520 (1960)
Laursen, P.S.: Can parallel branch and bound without communication be effective? SIAM Journal on Optimization 4, 288–296 (1994)
Linderoth, J.: Topics in parallel integer optimization. Ph.D. thesis, School of Industrial and Systems Engineering, Georgia Institute of Technology, Atlanta, GA (1998)
Linderoth, J.T., Savelsbergh, M.: A computational study of search strategies for mixed integer programming. INFORMS Journal on Computing 11, 173–187 (1998)
Lougee-Heimer, R.: The common optimization interface for operations research. IBM Journal of Research and Development 47(1), 57–66 (2003)
Mahajan, A.: Presolving mixed-integer linear programs. In: J.J. Cochran, L.A. Cox, P. Keskinocak, J.P. Kharoufeh, J.C. Smith (eds.) Wiley Encyclopedia of Operations Research and Management Science. John Wiley & Sons, Inc. (2010). https://doi.org/10.1002/9780470400531.eorms0437. Online publication
Makhorin, A.: the GNU linear programming kit. http://www.gnu.org/software/glpk
Marchand, H., Martin, A., Weismantel, R., Wolsey, L.: Cutting planes in integer and mixed integer programming. Discrete Applied Mathematics 123(1), 397–446 (2002)
Miller, D., Pekny, J.: Results from a parallel branch and bound algorithm for the asymmetric traveling salesman problem. Operations Research Letters 8(3), 129–135 (1989). http://dx.doi.org/10.1016/0167-6377(89)90038-2
Munguia, L.M., Oxberry, G., Rajan, D.: PIBS-SBB: A parallel distributedmemory branch-and-bound algorithm for stochastic mixed-integer programs. In: 2016 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW), pp. 730–739 (2016). https://doi.org/10.1109/ipdpsw.2016.159
Nemhauser, G.L.,Wolsey, L.A.: Integer and combinatorial optimization. Wiley (1988)
Nesterov, Y., Nemirovski, A.: Interior-Point Polynomial Algorithms in Convex Programming. Studies in Applied and Numerical Mathematics. Society for Industrial and Applied Mathematics (1994)
Olszewski, M., Ansel, J., Amarasinghe, S.: Kendo: efficient deterministic multithreading in software. ACM SIGPLAN Notices 44(3), 97–108 (2009). https://doi.org/10.1145/1508284.1508256
Osman, A., Ammar, H.: Dynamic load balancing strategies for parallel computers. http://citeseer.nj.nec.com/osman02dynamic.html
Ozaltin, O.Y., Hunsaker, B., Schaefer, A.J.: Predicting the solution time of branch-and-bound algorithms for mixed-integer programs. INFORMS J. on Computing 23(3), 392–403 (2011). https://doi.org/10.1287/ijoc.1100.0405
Pekny, J.F.: Exact parallel algorithms for some members of the traveling salesman problem family. Ph.D. thesis, Carnegie-Mellon University, Pittsburgh, PA, USA (1989)
Ralphs, T.K.: Parallel branch and cut for capacitated vehicle routing. Parallel Computing 29, 607–629 (2003). https://doi.org/10.1016/s0167-8191(03)00045-0. http://coral.ie.lehigh.edu/~ted/files/papers/PVRP.pdf
Ralphs, T.K.: Parallel branch and cut. In: E. Talbi (ed.) Parallel Combinatorial Optimization, pp. 53–101. Wiley, New York (2006). http://coral.ie.lehigh.edu/~ted/files/papers/PBandC.pdf
Ralphs, T.K., Galati, M.V., Wang, J.: Dip version 0.92 (2017). https://doi.org/10.5281/zenodo.246087
Ralphs, T.K., Guzelsoy, M., Mahajan, A.: Symphony version 5.6 (2017). https://doi.org/10.5281/zenodo.237456
Ralphs, T.K., Ladányi, L.: COIN/BCP user’s manual. Tech. rep., COR@L Laboratory, Lehigh University (2001). http://coral.ie.lehigh.edu/~ted/files/papers/BCP-Manual.pdf
Ralphs, T.K., Ladányi, L., Saltzman, M.J.: Parallel branch, cut, and price for large-scale discrete optimization. Mathematical Programming 98, 253–280 (2003). https://doi.org/10.1007/s10107-003-0404-8. http://coral.ie.lehigh.edu/~ted/files/papers/PBCP.pdf
Sanders, P.: A detailed analysis of random polling dynamic load balancing. In: International Symposium on Parallel Architectures Algorithms and Networks, pp. 382–389 (1994)
Sanders, P.: Randomized static load balancing for tree-shaped computations. In: Workshop on Parallel Processing, pp. 58–69 (1994)
Sanders, P.: Tree shaped computations as a model for parallel applications. In: ALV’98 Workshop on application based load balancing, pp. 123–132 (1998)
SCIP: Solving Constraint Integer Programs. http://scip.zib.de/
Shinano, Y., Achterberg, T., Berthold, T., Heinz, S., Koch, T., Winkler, M.: Solving open MIP instances with ParaSCIP on supercomputers using up to 80,000 cores. In: 2016 IEEE International Parallel and Distributed Processing Symposium (IPDPS), pp. 770–779. IEEE Computer Society, Los Alamitos, CA, USA (2016)
Shinano, Y., Achterberg, T., Fujie, T.: A dynamic load balancing mechanism for new ParaLEX. In: Proceedings of ICPADS 2008, pp. 455–462 (2008)
Shinano, Y., Fujie, T.: ParaLEX: A parallel extension for the CPLEX mixed integer optimizer. In: F. Cappello, T. Herault, J. Dongarra (eds.) Recent Advances in Parallel Virtual Machine and Message Passing Interface. Proceedings, pp. 97–106. Springer Berlin Heidelberg (2007). https://doi.org/10.1007/978-3-540-75416-9\_19
Shinano, Y., Fujie, T., Kounoike, Y.: Effectiveness of parallelizing the ILOGCPLEX mixed integer optimizer in the PUBB2 framework. In: H. Kosch, L. Böszörményi, H. Hellwagner (eds.) Euro-Par 2003 Parallel Processing: Proceedings, pp. 451–460. Springer Berlin Heidelberg (2003). https://doi.org/10.1007/978-3-540-45209-6\_67
Shinano, Y., Fujie, T., Kounoike, Y.: Pubb2: A redesigned object-oriented software tool for implementing parallel and distributed branch-and-bound algorithms. In: Proceedings of ISTEAD International Conference: Parallel and Distributed Computing and Systems, pp. 639–647 (2003)
Shinano, Y., Heinz, S., Vigerske, S., Winkler, M.: FiberSCIP – a shared memory parallelization of SCIP. INFORMS Journal on Computing, Published online 2017, https://doi.org/10.1287/ijoc.2017.0762
Shinano, Y., Higaki, M., Hirabayashi, R.: A generalized utility for parallel branch and bound algorithms. In: Proceedings of the Seventh IEEE Symposium on Parallel and Distributed Processing, pp. 392–401 (1995). https://doi.org/10.1109/spdp.1995.530710
Sinha, A., Kalé, L.V.: A load balancing strategy for prioritized execution of tasks. In: Seventh International Parallel Processing Symposium, pp. 230–237. Newport Beach, CA. (1993)
SteinLib Testdata Library. http://steinlib.zib.de/steinlib.php
Tahernejad, S., Ralphs, T., DeNegre, S.: A branch-and-cut algorithm for mixed integer bilevel linear optimization problems and its implementation. Tech. rep., COR@L Laboratory Technical Report 16T-015-R3, Lehigh University (2016)
Trienekens, H.W.J.M., de Bruin, A.: Towards a taxonomy of parallel branch and bound algorithms. Tech. Rep. EUR-CS-92-01, Department of Computer Science, Erasmus University (1992)
Tschoke, S., Polzer, T.: Portable parallel branch and bound library (2008). http://www.cs.uni-paderborn.de/cs/ag-monien/SOFTWARE/PPBB/ppbblib.html
UG: Ubiquity Generator framework. http://ug.zib.de/
Wang, J., Ralphs, T.K.: Computational experience with hypergraph-based methods for automatic decomposition in discrete optimization. In: Proceedings of the Conference on Constraint Programming, Artificial Intelligence, and Operations Research, pp. 394–402 (2013). https://doi.org/10.1007/978-3-642-38171-3
Wilkinson, B., Allen, M.: Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers. Prentice-Hall, Inc, New Jersey, USA (1999)
Willebeek-LeMair, M.H., Reeves, A.P.: Strategies for dynamic load balancing on highly parallel computers. IEEE Transactions on Parallel and Distributed Systems 4, 979–993 (1993). https://doi.org/10.1109/71.243526
Witzig, J., Berthold, T., Heinz, S.: Experiments with conflict analysis in mixed integer programming. ZIB-Report 16-63, Zuse Institute Berlin, (2016)
Wolter, K.: Implementation of Cutting Plane Separators for Mixed Integer Programs. Master’s thesis, Technische Universität Berlin (2006)
Xu, Y.: Scalable algorithms for parallel tree search. Ph.D. thesis, Department of Industrial and Systems Engineering, Lehigh University, Bethlehem, PA, USA (2007)
Xu, Y., Ralphs, T.K., Ladányi, L., Saltzman, M.: Alps version 1.5 (2016). https://doi.org/10.5281/zenodo.245971
Xu, Y., Ralphs, T.K., Ladányi, L., Saltzman, M.: Biceps version 0.94 (2017). https://doi.org/10.5281/zenodo.245652
Xu, Y., Ralphs, T.K., Ladányi, L., Saltzman, M.: Blis version 0.94 (2017). https://doi.org/10.5281/zenodo.246079
Xu, Y., Ralphs, T.K., Ladányi, L., Saltzman, M.J.: Alps: A framework for implementing parallel search algorithms. In: The Proceedings of the Ninth INFORMS Computing Society Conference, pp. 319–334 (2005). https://doi.org/10.1007/0-387-23529-9\_21. http://coral.ie.lehigh.edu/~ted/files/papers/ALPS04.pdf
Xu, Y., Ralphs, T.K., Ladányi, L., Saltzman, M.J.: Computational experience with a software framework for parallel integer programming. The INFORMS Journal on Computing 21, 383–397 (2009). https://doi.org/10.1287/ijoc.1090.0347. http://coral.ie.lehigh.edu/~ted/files/papers/CHiPPS-Rev.pdf
Zheng, G., Bhatelé, A., Meneses, E., Kalé, L.V.: Periodic hierarchical load balancing for large supercomputers. Int. J. High Perform. Comput. Appl. 25(4), 371–385 (2011). https://doi.org/10.1177/1094342010394383
Acknowledgements
This work has been supported by the Research Campus Modal (Mathematical Optimization and Data Analysis Laboratories) funded by the Federal Ministry of Education and Research (BMBF Grant 05M14ZAM), by the DFG SFB/Transregio 154, and by Lehigh University. All responsibility for the content is assumed by the authors.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG, part of Springer Nature
About this chapter
Cite this chapter
Ralphs, T., Shinano, Y., Berthold, T., Koch, T. (2018). Parallel Solvers for Mixed Integer Linear Optimization. In: Hamadi, Y., Sais, L. (eds) Handbook of Parallel Constraint Reasoning. Springer, Cham. https://doi.org/10.1007/978-3-319-63516-3_8
Download citation
DOI: https://doi.org/10.1007/978-3-319-63516-3_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-63515-6
Online ISBN: 978-3-319-63516-3
eBook Packages: Computer ScienceComputer Science (R0)