Parallel Solvers for Mixed Integer Linear Optimization

  • Ted Ralphs
  • Yuji Shinano
  • Timo Berthold
  • Thorsten Koch


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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.



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.


  1. [1]
    Achterberg, T.: Conflict analysis in mixed integer programming. Discrete Optimization 4(1), 4–20 (2007). Special issue: Mixed Integer ProgrammingGoogle Scholar
  2. [2]
    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)Google Scholar
  3. [3]
    Achterberg, T., Koch, T., Martin, A.: MIPLIB 2003. ORL 34(4), 1–12 (2006)Google Scholar
  4. [4]
    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)Google Scholar
  5. [5]
    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).\_132
  6. [6]
    Barney, B.: Introduction to Parallel Computing.
  7. [7]
    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)Google Scholar
  8. [8]
    Berthold, T.: Primal heuristics for mixed integer programs. Diploma thesis, Technische Universität Berlin (2006)Google Scholar
  9. [9]
    Berthold, T.: Heuristic algorithms in global MINLP solvers. Ph.D. thesis, Technische Universität Berlin (2014)Google Scholar
  10. [10]
    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).
  11. [11]
    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)Google Scholar
  12. [12]
    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).
  13. [13]
    Bulut, A., Ralphs, T.K.: Disco version 0.95 (2017).
  14. [14]
    Bussieck, M.R., Ferris, M.C., Meeraus, A.: Grid-enabled optimization with GAMS. IJoC 21(3), 349–362 (2009).
  15. [15]
    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).
  16. [16]
    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).
  17. [17]
    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).
  18. [18]
  19. [19]
    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)Google Scholar
  20. [20]
    Danna, E.: Performance variability in mixed integer programming (2008). Presentation, Workshop on Mixed Integer Programming (MIP 2008), Columbia University, New York.
  21. [21]
    Dantzig, G.B., Wolfe, P.: Decomposition principle for linear programs. Operations Research 8(1), 101–111 (1960)Google Scholar
  22. [22]
    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).
  23. [23]
    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).
  24. [24]
    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).
  25. [25]
    Dolan, E.D., Moré, J.J.: Benchmarking optimization software with performance profiles. Mathematical Programming 91(2), 201–213 (2002).
  26. [26]
    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)Google Scholar
  27. [27]
    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).
  28. [28]
    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).
  29. [29]
    Eckstein, J., Phillips, C.A., Hart, W.E.: PEBBL 1.0 user guide (2007)Google Scholar
  30. [30]
    Eikland, K., Notebaert, P.: lp_solve 5.5.2.
  31. [31]
  32. [32]
    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 publicationGoogle Scholar
  33. [33]
    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)Google Scholar
  34. [34]
    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).\_28
  35. [35]
    Forrest, J.: CBC MIP solver.
  36. [36]
    Fourer, R.: Linear programming: Software survey. OR/MS Today 42(3) (2015)Google Scholar
  37. [37]
    Galati, M.V., Ralphs, T.K., Wang, J.: Computational experience with generic decomposition using the DIP framework. In: Proceedings of RAMP 2012 (2012).
  38. [38]
    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)Google Scholar
  39. [39]
    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)Google Scholar
  40. [40]
    Gendron, B., Crainic, T.G.: Parallel branch-and-branch algorithms: Survey and synthesis. Operations Research 42(6), 1042–1066 (1994).
  41. [41]
    Gomory, R.E.: Outline of an algorithm for integer solutions to linear programs. Bulletin of the American Mathematical Society 64(5), 275–278 (1958)Google Scholar
  42. [42]
    Gottwald, R.L., Maher, S.J., Shinano, Y.: Distributed domain propagation. ZIB-Report 16-71, Zuse Institute Berlin, (2016)Google Scholar
  43. [43]
    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).
  44. [44]
    Gurobi Optimizer.
  45. [45]
    Hager, G., Wellein, G.: Introduction to High Performance Computing for Scientists and Engineers. CRC Press, Inc., Boca Raton, FL, USA (2010)Google Scholar
  46. [46]
    Henrich, D.: Initialization of parallel branch-and-bound algorithms. In: Second InternationalWorkshop on Parallel Processing for Artificial Intelligence(PPAI-93) (1993)Google Scholar
  47. [47]
    Huangfu, Q., Hall, J.: Parallelizing the dual revised simplex method. Tech. rep., arXiv preprint arXiv:1503.01889 (2015)
  48. [48]
    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).
  49. [49]
    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).
  50. [50]
    Jünger, M., Thienel, S.: Introduction to ABACUS—a branch-and-cut system. Operations Research Letters 22, 83–95 (1998)Google Scholar
  51. [51]
    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, 1979Google Scholar
  52. [52]
    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)Google Scholar
  53. [53]
    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).
  54. [54]
    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)Google Scholar
  55. [55]
    Ladányi, L.: BCP: Branch-cut-price framework (2000).
  56. [56]
    Land, A.H., Doig, A.G.: An automatic method of solving discrete programming problems. Econometrica 28(3), 497–520 (1960)Google Scholar
  57. [57]
    Laursen, P.S.: Can parallel branch and bound without communication be effective? SIAM Journal on Optimization 4, 288–296 (1994)Google Scholar
  58. [58]
    Linderoth, J.: Topics in parallel integer optimization. Ph.D. thesis, School of Industrial and Systems Engineering, Georgia Institute of Technology, Atlanta, GA (1998)Google Scholar
  59. [59]
    Linderoth, J.T., Savelsbergh, M.: A computational study of search strategies for mixed integer programming. INFORMS Journal on Computing 11, 173–187 (1998)Google Scholar
  60. [60]
    Lougee-Heimer, R.: The common optimization interface for operations research. IBM Journal of Research and Development 47(1), 57–66 (2003)Google Scholar
  61. [61]
    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). Online publication
  62. [62]
    Makhorin, A.: the GNU linear programming kit.
  63. [63]
    Marchand, H., Martin, A., Weismantel, R., Wolsey, L.: Cutting planes in integer and mixed integer programming. Discrete Applied Mathematics 123(1), 397–446 (2002)Google Scholar
  64. [64]
    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).
  65. [65]
    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).
  66. [66]
    Nemhauser, G.L.,Wolsey, L.A.: Integer and combinatorial optimization. Wiley (1988)Google Scholar
  67. [67]
    Nesterov, Y., Nemirovski, A.: Interior-Point Polynomial Algorithms in Convex Programming. Studies in Applied and Numerical Mathematics. Society for Industrial and Applied Mathematics (1994)Google Scholar
  68. [68]
    Olszewski, M., Ansel, J., Amarasinghe, S.: Kendo: efficient deterministic multithreading in software. ACM SIGPLAN Notices 44(3), 97–108 (2009).
  69. [69]
    Osman, A., Ammar, H.: Dynamic load balancing strategies for parallel computers.
  70. [70]
    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).
  71. [71]
    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)Google Scholar
  72. [72]
    Ralphs, T.K.: Parallel branch and cut for capacitated vehicle routing. Parallel Computing 29, 607–629 (2003).
  73. [73]
    Ralphs, T.K.: Parallel branch and cut. In: E. Talbi (ed.) Parallel Combinatorial Optimization, pp. 53–101. Wiley, New York (2006).
  74. [74]
    Ralphs, T.K., Galati, M.V., Wang, J.: Dip version 0.92 (2017).
  75. [75]
    Ralphs, T.K., Guzelsoy, M., Mahajan, A.: Symphony version 5.6 (2017).
  76. [76]
    Ralphs, T.K., Ladányi, L.: COIN/BCP user’s manual. Tech. rep., COR@L Laboratory, Lehigh University (2001).
  77. [77]
    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).
  78. [78]
    Sanders, P.: A detailed analysis of random polling dynamic load balancing. In: International Symposium on Parallel Architectures Algorithms and Networks, pp. 382–389 (1994)Google Scholar
  79. [79]
    Sanders, P.: Randomized static load balancing for tree-shaped computations. In: Workshop on Parallel Processing, pp. 58–69 (1994)Google Scholar
  80. [80]
    Sanders, P.: Tree shaped computations as a model for parallel applications. In: ALV’98 Workshop on application based load balancing, pp. 123–132 (1998)Google Scholar
  81. [81]
    SCIP: Solving Constraint Integer Programs.
  82. [82]
    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)Google Scholar
  83. [83]
    Shinano, Y., Achterberg, T., Fujie, T.: A dynamic load balancing mechanism for new ParaLEX. In: Proceedings of ICPADS 2008, pp. 455–462 (2008)Google Scholar
  84. [84]
    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).\_19
  85. [85]
    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).\_67
  86. [86]
    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)Google Scholar
  87. [87]
    Shinano, Y., Heinz, S., Vigerske, S., Winkler, M.: FiberSCIP – a shared memory parallelization of SCIP. INFORMS Journal on Computing, Published online 2017,
  88. [88]
    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).
  89. [89]
    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)Google Scholar
  90. [90]
    SteinLib Testdata Library.
  91. [91]
    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)Google Scholar
  92. [92]
    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)Google Scholar
  93. [93]
    Tschoke, S., Polzer, T.: Portable parallel branch and bound library (2008).
  94. [94]
    UG: Ubiquity Generator framework.
  95. [95]
    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).
  96. [96]
    Wilkinson, B., Allen, M.: Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers. Prentice-Hall, Inc, New Jersey, USA (1999)Google Scholar
  97. [97]
    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).
  98. [98]
    Witzig, J., Berthold, T., Heinz, S.: Experiments with conflict analysis in mixed integer programming. ZIB-Report 16-63, Zuse Institute Berlin, (2016)Google Scholar
  99. [99]
    Wolter, K.: Implementation of Cutting Plane Separators for Mixed Integer Programs. Master’s thesis, Technische Universität Berlin (2006)Google Scholar
  100. [100]
    Xu, Y.: Scalable algorithms for parallel tree search. Ph.D. thesis, Department of Industrial and Systems Engineering, Lehigh University, Bethlehem, PA, USA (2007)Google Scholar
  101. [101]
    Xu, Y., Ralphs, T.K., Ladányi, L., Saltzman, M.: Alps version 1.5 (2016).
  102. [102]
    Xu, Y., Ralphs, T.K., Ladányi, L., Saltzman, M.: Biceps version 0.94 (2017).
  103. [103]
    Xu, Y., Ralphs, T.K., Ladányi, L., Saltzman, M.: Blis version 0.94 (2017).
  104. [104]
    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).\_21.
  105. [105]
    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).
  106. [106]
    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).

Copyright information

© Springer International Publishing AG, part of Springer Nature 2018

Authors and Affiliations

  • Ted Ralphs
    • 1
  • Yuji Shinano
    • 2
  • Timo Berthold
    • 3
  • Thorsten Koch
    • 2
  1. 1.Lehigh UniversityBethlehemUSA
  2. 2.Zuse InstituteBerlinGermany
  3. 3.Fair Isaac Germany GmbHBerlinGermany

Personalised recommendations