Mathematical Programming Computation

, Volume 10, Issue 2, pp 267–302 | Cite as

mplrs: A scalable parallel vertex/facet enumeration code

  • David Avis
  • Charles Jordan
Full Length Paper


We describe a new parallel implementation, mplrs, of the vertex enumeration code lrs that uses the MPI parallel environment and can be run on a network of computers. The implementation makes use of a C wrapper that essentially uses the existing lrs code with only minor modifications. mplrs was derived from the earlier parallel implementation plrs, written by G. Roumanis in C\({++}\) which runs on a shared memory machine. By improving load balancing we are able to greatly improve performance for medium to large scale parallelization of lrs. We report computational results comparing parallel and sequential codes for vertex/facet enumeration problems for convex polyhedra. The problems chosen span the range from simple to highly degenerate polytopes. For most problems tested, the results clearly show the advantage of using the parallel implementation mplrs of the reverse search based code lrs, even when as few as 8 cores are available. For some problems almost linear speedup was observed up to 1200 cores, the largest number of cores tested. The software that was reviewed as part of this submission is included in lrslib-062.tar.gz which has MD5 hash be5da7b3b90cc2be628dcade90c5d1b9.


Vertex enumeration Reverse search Parallel processing 

Mathematics Subject Classification




We thank Kazuki Yoshizoe for helpful discussions concerning the MPI library which improved mplrs ’ performance.


  1. 1.
    Anderson, D.P., Cobb, J., Korpela, E., Lebofsky, M., Werthimer, D.: SETI@home: an experiment in public-resource computing. Commun. ACM 45(11), 56–61 (2002)CrossRefGoogle Scholar
  2. 2.
    Anstreicher, K., Brixius, N., Goux, J.P., Linderoth, J.: Solving large quadratic assignment problems on computational grids. Math. Program. 91(3), 563–588 (2002)MathSciNetCrossRefzbMATHGoogle Scholar
  3. 3.
    Applegate, D.L., Bixby, R.E., Chvatal, V., Cook, W.J.: Accessed 6 Nov 2017
  4. 4.
    Applegate, D.L., Bixby, R.E., Chvatal, V., Cook, W.J.: The Traveling Salesman Problem: A Computational Study (Princeton Series in Applied Mathematics). Princeton University Press, Princeton (2007)Google Scholar
  5. 5.
    Assarf, B., Gawrilow, E., Herr, K., Joswig, M., Lorenz, B., Paffenholz, A., Rehn, T.: Computing convex hulls and counting integer points with polymake. Math. Program. Comput. 9, 1–38 (2017)MathSciNetCrossRefzbMATHGoogle Scholar
  6. 6.
    Avis, D.: Accessed 6 Nov 2017
  7. 7.
    Avis, D.: A revised implementation of the reverse search vertex enumeration algorithm. In: Kalai, G., Ziegler, G.M. (eds.) Polytopes—Combinatorics and Computation, vol. 29, pp. 177–198. DMV Seminar, Birkhäuser, Basel (2000)Google Scholar
  8. 8.
    Avis, D., Devroye, L.: Estimating the number of vertices of a polyhedron. Inf. Process. Lett. 73(3–4), 137–143 (2000)MathSciNetCrossRefzbMATHGoogle Scholar
  9. 9.
    Avis, D., Devroye, L.: An analysis of budgeted parallel search on conditional Galton–Watson trees. arXiv:1703.10731 (2017)
  10. 10.
    Avis, D., Fukuda, K.: A pivoting algorithm for convex hulls and vertex enumeration of arrangements and polyhedra. Discrete Comput. Geom. 8, 295–313 (1992)MathSciNetCrossRefzbMATHGoogle Scholar
  11. 11.
    Avis, D., Fukuda, K.: Reverse search for enumeration. Discrete Appl. Math. 65, 21–46 (1996)MathSciNetCrossRefzbMATHGoogle Scholar
  12. 12.
    Avis, D., Jordan, C.: A parallel framework for reverse search using mts. arXiv:1610.07735 (2016)
  13. 13.
    Avis, D., Roumanis, G.: A portable parallel implementation of the lrs vertex enumeration code. In: Combinatorial Optimization and Applications—7th International Conference, COCOA 2013, Lecture Notes in Computer Science, vol. 8287, pp. 414–429. Springer, New York (2013)Google Scholar
  14. 14.
    Bagnara, R., Hill, P.M., Zaffanella, E.: The Parma Polyhedra Library: toward a complete set of numerical abstractions for the analysis and verification of hardware and software systems. Sci. Comput. Program. 72(1–2), 3–21 (2008)Google Scholar
  15. 15.
    Balyo, T., Sanders, P., Sinz, C.: HordeSat: a massively parallel portfolio SAT solver. In: Proceedings of the 18th International Conference on Theory and Applications of Satisfiability Testing (SAT 2015), Lecture Notes in Computer Science, vol. 9340, pp. 156–172 (2015)Google Scholar
  16. 16.
    Blumofe, R.D., Leiserson, C.E.: Scheduling multithreaded computations by work stealing. J. ACM 46(5), 720–748 (1999)MathSciNetCrossRefzbMATHGoogle Scholar
  17. 17.
    Brüngger, A., Marzetta, A., Fukuda, K., Nievergelt, J.: The parallel search bench ZRAM and its applications. Ann. Oper. Res. 90, 45–63 (1999)MathSciNetCrossRefzbMATHGoogle Scholar
  18. 18.
    Bruns, W., Ichim, B., Söger, C.: The power of pyramid decomposition in Normaliz. J. Symb. Comput. 74, 513–536 (2016)MathSciNetCrossRefzbMATHGoogle Scholar
  19. 19.
    Carle, M.A.: The quest for optimality. Accessed 6 Nov 2017
  20. 20.
    Casado, L.G., Martínez, J.A., García, I., Hendrix, E.M.T.: Branch-and-bound interval global optimization on shared memory multiprocessors. Optim. Methods Softw. 23(5), 689–701 (2008)MathSciNetCrossRefzbMATHGoogle Scholar
  21. 21.
    Ceder, G., Garbulsky, G., Avis, D., Fukuda, K.: Ground states of a ternary fcc lattice model with nearest- and next-nearest-neighbor interactions. Phys. Rev. B: Condens. Matter 49(1), 1–7 (1994)CrossRefGoogle Scholar
  22. 22.
    Christof, T., Loebel, A.: Accessed 6 Nov 2017
  23. 23.
    Chvátal, V.: Linear Programming. W.H. Freeman, San Francisco (1983)zbMATHGoogle Scholar
  24. 24.
    Cornuéjols, G., Karamanov, M., Li, Y.: Early estimates of the size of branch-and-bound trees. INFORMS J. Comput. 18(1), 86–96 (2006)MathSciNetCrossRefzbMATHGoogle Scholar
  25. 25.
    Crainic, T.G., Le Cun, B., Roucairol, C.: Parallel Branch-and-Bound Algorithms, pp. 1–28. Wiley, New York (2006)Google Scholar
  26. 26.
    Deza, M.M., Laurent, M.: Geometry of Cuts and Metrics. Springer, New York (1997)CrossRefzbMATHGoogle Scholar
  27. 27.
    Djerrah, A., Le Cun, B., 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)Google Scholar
  28. 28.
    Ferrez, J., Fukuda, K., Liebling, T.: Solving the fixed rank convex quadratic maximization in binary variables by a parallel zonotope construction algorithm. Eur. J. Oper. Res. 166, 35–50 (2005)MathSciNetCrossRefzbMATHGoogle Scholar
  29. 29.
    Fischetti, M., Monaci, M., Salvagnin, D.: Self-splitting of workload in parallel computation. In: Integration of AI and OR Techniques in Constraint Programming, CPAIOR 2014, Lecture Notes in Computer Science, vol. 8451, pp. 394–404 (2014)Google Scholar
  30. 30.
    Fisikopoulos, V., Peñaranda, L.M.: Faster geometric algorithms via dynamic determinant computation. Comput. Geom. 54, 1–16 (2016)MathSciNetCrossRefzbMATHGoogle Scholar
  31. 31.
    Fukuda, K.: Accessed 6 Nov 2017
  32. 32.
    Goux, J.P., Kulkarni, S., Yoder, M., Linderoth, J.: Master-worker: an enabling framework for applications on the computational grid. Clust. Comput. 4(1), 63–70 (2001)CrossRefGoogle Scholar
  33. 33.
    Graham, R.L.: Bounds on multiprocessing timing anomalies. SIAM J. Appl. Math. 17(2), 416–429 (1969)MathSciNetCrossRefzbMATHGoogle Scholar
  34. 34.
    Grama, A., Kumar, V.: State of the art in parallel search techniques for discrete optimization problems. IEEE Trans. Knowl. Data Eng. 11(1), 28–35 (1999)CrossRefGoogle Scholar
  35. 35.
    Gurobi, I.: Gurobi optimizer. Accessed 6 Nov 2017
  36. 36.
    Hall Jr., M., Knuth, D.E.: Combinatorial analysis and computers. Am. Math Mon. 10, 21–28 (1965)MathSciNetCrossRefzbMATHGoogle Scholar
  37. 37.
    Hamadi, Y., Wintersteiger, C.M.: Seven challenges in parallel SAT solving. In: Proceedings of the 26th AAAI Conference on Artificial Intelligence (AAAI’12), pp. 2120–2125 (2012)Google Scholar
  38. 38.
    Herrera, J.F.R., Salmerón, J.M.G., Hendrix, E.M.T., Asenjo, R., Casado, L.G.: On parallel branch and bound frameworks for global optimization. J. Glob. Optim. 69(3), 547–560.
  39. 39.
    Heule, M.J., Kullmann, O., Wieringa, S., Biere, A.: Cube and conquer: guiding CDCL SAT solvers by lookaheads. In: Hardware and Software: Verification and Testing (HVC’11), Lecture Notes in Computer Science, vol. 7261, pp. 50–65 (2011)Google Scholar
  40. 40.
    Horst, R., Pardalos, P.M., Thoai, N.V.: Introduction to Global Optimization (Nonconvex Optimization and Its Applications). Springer, New York (2000)CrossRefzbMATHGoogle Scholar
  41. 41.
    Hyatt, R.M., Suter, B.W., Nelson, H.L.: A parallel alpha/beta tree searching algorithm. Parallel Comput. 10(3), 299–308 (1989)CrossRefzbMATHGoogle Scholar
  42. 42.
    ILOG, I.: ILOG CPLEX. Accessed 6 Nov 2017
  43. 43.
    Kilby, P., Slaney, J., Thiébaux, S., Walsh, T.: Estimating search tree size. In: Proceedings of the 21st National Conference on Artificial Intelligence (AAAI’06), pp. 1014–1019 (2006)Google Scholar
  44. 44.
    Koch, T., Ralphs, T., Shinano, Y.: Could we use a million cores to solve an integer program? Math. Methods Oper. Res. 76(1), 67–93 (2012)MathSciNetCrossRefzbMATHGoogle Scholar
  45. 45.
    Kumar, V., Grama, A.Y., Vempaty, N.R.: Scalable load balancing techniques for parallel computers. J. Parallel Distrib. Comput. 22, 60–79 (1994)CrossRefGoogle Scholar
  46. 46.
    Kumar, V., Rao, V.N.: Parallel depth first search. Part II. Analysis. Int. J. Parallel Prog. 16(6), 501–519 (1987)CrossRefzbMATHGoogle Scholar
  47. 47.
    Malapert, A., Régin, J.C., Rezgui, M.: Embarrassingly parallel search in constraint programming. J. Artif. Intell. Res. 57, 421–464 (2016)MathSciNetzbMATHGoogle Scholar
  48. 48.
    Marzetta, A.: ZRAM: A library of parallel search algorithms and its use in enumeration and combinatorial optimization. Ph.D. thesis, Swiss Federal Institute of Technology Zurich (1998)Google Scholar
  49. 49.
    Mattson, T., Sanders, B., Massingill, B.: Patterns Parallel Program. Addison-Wesley Professional, Boston (2004)Google Scholar
  50. 50.
    McCreesh, C., Prosser, P.: The shape of the search tree for the maximum clique problem and the implications for parallel branch and bound. ACM Trans. Parallel Comput. 2(1), 8:1–8:27 (2015)CrossRefzbMATHGoogle Scholar
  51. 51.
    Moran, B., Cohen, F., Wang, Z., Suvorova, S., Cochran, D., Taylor, T., Farrell, P., Howard, S.: Bounds on multiple sensor fusion. ACM Trans. Sensor Netw. 16(1), 16:1–16:26 (2016)Google Scholar
  52. 52.
    Normaliz: (2015). Accessed 6 Nov 2017
  53. 53.
    Otten, L., Dechter, R.: AND/OR branch-and-bound on a computational grid. J. Artif. Intell. Res. 59, 351–435 (2017)MathSciNetzbMATHGoogle Scholar
  54. 54.
    Reinders, J.: Intel Threading Building Blocks. O’Reilly & Associates, Inc., Sebastopol (2007)Google Scholar
  55. 55.
    Reinelt, G., Wenger, K.M.: Small instance relaxations for the traveling salesman problem. In: Operations Research Proceedings 2003, Operations Research Proceedings, vol. 2003, pp. 371–378. Springer, Berlin (2004)Google Scholar
  56. 56.
    Shinano, Y., Achterberg, T., Berthold, T., Heinz, S., Koch, T.: ParaSCIP: a parallel extension of SCIP. Competence in High Performance Computing 2010, pp. 135–148. Springer, Berlin (2012)Google Scholar
  57. 57.
    Shirazi, B.A., Kavi, K.M., Hurson, A.R. (eds.): Scheduling and Load Balancing in Parallel and Distributed Systems. IEEE Computer Society Press, Los Alamitos (1995)Google Scholar
  58. 58.
    Weibel, C.: Implementation and parallelization of a reverse-search algorithm for Minkowski sums. In: 2010 Proceedings of the Twelfth Workshop on Algorithm Engineering and Experiments (ALENEX), pp. 34–42 (2010)Google Scholar
  59. 59.
    Wilkinson, B., Allen, M.: Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers. Prentice Hall, Upper Saddle River (2005)Google Scholar
  60. 60.
    Xu, Y.: Scalable algorithms for parallel tree search. Ph.D. thesis, Lehigh University (2007)Google Scholar
  61. 61.
    Ziegler, G.M.: Lectures on Polytopes. Springer, New York (1995)CrossRefzbMATHGoogle Scholar

Copyright information

© Springer-Verlag GmbH Germany and The Mathematical Programming Society 2017

Authors and Affiliations

  1. 1.School of InformaticsKyoto UniversityKyotoJapan
  2. 2.School of Computer ScienceMcGill UniversityMontréalCanada
  3. 3.Graduate School of Information Science and TechnologyHokkaido UniversitySapporoJapan

Personalised recommendations