Mixing Static and Dynamic Partitioning to Parallelize a Constraint Programming Solver

  • Tarek Menouer
  • Mohamed Rezgui
  • Bertrand Le Cun
  • Jean-Charles Régin


This paper presents an external parallelization of Constraint Programming (CP) search tree mixing both static and dynamic partitioning. The principle of the parallelization is to partition the CP search tree into a set of sub-trees, then assign each sub-tree to one computing core in order to perform a local search using a sequential CP solver. In this context, static partitioning consists of decomposing the CP variables domains in order to split the CP search tree into a set of disjoint sub-trees to assign them to the cores. This strategy performs well without adding an extra cost to the parallel search, but the problem is the load imbalance between computing cores. On the other hand, dynamic partitioning is based on preservation of the search state to generate, dynamically or on demand, the sub-trees that are assigned to the cores. This strategy offers good load balancing between the different computing cores, but computing overcosts appear due to the initialisation of the search when a sub-tree is migrated from one core to another. In this paper, we propose a new partitioning strategy that mixes the static and dynamic partitioning and enjoys the benefits of each strategy. This mixed partitioning is designed to run on shared and distributed memory architectures. The performances obtained are illustrated by solving the CP problems modelled using the FlatZinc format and solved using the Google OR-Tools solver on top of the parallel Bobpp framework.


Parallelism Constraint Programming Work Stealing  Dynamic load balancing 


  1. 1.
    Acar, U.A., Blelloch, G.E., Blumofe, R.D.: The data locality of work stealing. In: Proceedings of the Twelfth Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA ’00), pp. 1–12. ACM, New York, NY, USA (2000)Google Scholar
  2. 2.
    Alfonso Ferreira, P.M.P.: Solving Combinatorial Optimization Problems in Parallel Methods and Techniques. Lecture Notes in Computer Science, vol. 1054 edition. Springer, Berlin (1996)Google Scholar
  3. 3.
    Baptiste, P., Pape, C.L., Nuijten, W.: Constraint-based scheduling—applying constraint programming to scheduling problems. In: International Series in Operations Research and Management Science, Paris, volume 39, Springer edition (2001)Google Scholar
  4. 4.
    Blumofe, R.D., Leiserson, C.E.: Scheduling multithreaded computations by work stealing. J. ACM 46(5), 720–748 (1999)MathSciNetCrossRefzbMATHGoogle Scholar
  5. 5.
    Bordeaux, L., Hamadi, Y., Samulowitz, H.: Experiments with massively parallel constraint solving. In: IJCAI, pp. 443–448 (2009)Google Scholar
  6. 6.
    Choco solver Accessed 14 April 2014 (2013)
  7. 7.
    Chu, G., Schulte, C., Stuckey, P.J.: Confidence-based work stealing in parallel constraint programming. In: Principles and Practice of Constraint Programming (CP 2009), pp. 226–241. Springer, Berlin (2009)Google Scholar
  8. 8.
    Ferreira, A., Morvan, M.: Models for parallel algorithm design: an introduction. In: Migdalas, A., Pardalos, P., Storoy, S. (eds.) Parallel Computing in Optimization, pp. 1–26. Kluwer, Boston (1997)CrossRefGoogle Scholar
  9. 9.
    Gendron, B., Crainic, T.G.: Parallel branch-and-bound algorithms: survey and synthesis. Oper. Res. 42(06), 1042–1066 (1994)MathSciNetCrossRefzbMATHGoogle Scholar
  10. 10.
    Galea, F., Le Cun, B.: Bob++: a framework for exact combinatorial optimization methods on parallel machines. In: International Conference High Performance Computing & Simulation 2007 (HPCS’07) and in Conjunction with The 21st European Conference on Modeling and Simulation (ECMS 2007), pp. 779–785 (2007)Google Scholar
  11. 11.
    Gautier, T., Roch, J., Villard, G.: Regular versus irregular problems and algorithms. In: Ferreira, A., Rolim, J. (eds.) Parallel Algorithms for Irregularly Structured Problems. Lecture Notes in Computer Science, vol. 980, pp. 1–25. Springer, Berlin (1995)CrossRefGoogle Scholar
  12. 12.
    Glucose sat solver Accessed 14 April 2014
  13. 13.
    Guo, Y., Zhao, J., Cave, V., Sarkar, V.: Slaw: a scalable locality-aware adaptive work-stealing scheduler. In: 2010 IEEE International Symposium on Parallel Distributed Processing (IPDPS), pp. 1–12 (2010)Google Scholar
  14. 14.
    Gent, I.P., Jefferson, C., Miguel, I., Moore, N.C., Nightingale, P., Prosser, P., Unsworth, C.: A preliminary review of literature on parallel constraint solving. In: Proceedings PMCS’11 Workshop on Parallel Methods for Constraint Solving (2011)Google Scholar
  15. 15.
    Hurley, B., Kotthoff, L., Malitsky, Y., O’Sullivan, B.: Proteus: A Hierarchical Portfolio of Solvers and Transformations. arXiv preprint arXiv:1306.5606 (2013)
  16. 16.
    Jaffar, J., Santosa, A.E., Yap, R.H.C., Zhu, K.Q.: Scalable distributed depth-first search with greedy work stealing. In: ICTAI, pp. 98–103 (2004)Google Scholar
  17. 17.
    Korf, R.E.: Depth-first iterative-deepening: an optimal admissible tree search. Artif. Intell. 27(1), 97–109 (1985)MathSciNetCrossRefzbMATHGoogle Scholar
  18. 18.
    Le Cun, B., Menouer, T., Vander-Swalmen, P.: Bobpp. Accessed 14 April 2014
  19. 19.
    Matteo Fischetti, M.M., Salvagnin, D.: Self-splitting of workload in parallel computation. In: CPAIOR’14 (2014)Google Scholar
  20. 20.
    Menouer, T., Cun, B.L.: Anticipated dynamic load balancing strategy to parallelize constraint programming search. In: 2013 IEEE 27th International Symposium on Parallel and Distributed Processing Workshops and PhD Forum, pp. 1771–1777 (2013)Google Scholar
  21. 21.
    Menouer, T., Cun, B.L.: Adaptive n to p portfolio for solving constraint programming problems on top of the parallel bobpp framework. In: 2014 IEEE 28th International Symposium on Parallel and Distributed Processing Workshops and PhD Forum (2014)Google Scholar
  22. 22.
    Michel, L., See, A., Hentenryck, P.: Parallelizing constraint programs transparently. In: Bessière, C. (ed.) Principles and Practice of Constraint Programming (CP 2007), Volume 4204 of Lecture Notes in Computer Science, pp. 514–528. Springer, Berlin (2007)Google Scholar
  23. 23.
    Michel, L., See, A., Hentenryck, P.V.: Transparent Parallelization of Constraint Programs on Computer Clusters (2008)Google Scholar
  24. 24.
    Michel, L., See, A., Van Hentenryck, P.: Distributed constraint-based local search. In: Benhamou, F. (ed.) Principles and Practice of Constraint Programming (CP 2006), Volume 4204 of Lecture Notes in Computer Science, pp. 344–358. Springer, Berlin (2006)Google Scholar
  25. 25.
    Michel, L., See, A., Van Hentenryck, P.: Transparent parallelization of constraint programming. Inf. J. Comput. 21(3), 363–382 (2009)CrossRefzbMATHGoogle Scholar
  26. 26.
    Minizinc challenge Accessed 14 April 2014
  27. 27.
    Minizinc challenge Accessed 14 April 2014 (2012)
  28. 28.
    NICTA: Specification of Zinc and Minizinc. Technical Report, Victoria Research Lab, Melbourne, Australia (2011)Google Scholar
  29. 29.
    Numberjack solver Accessed 14 April 04 2014 (2013)
  30. 30.
    O’mahony, E., Hebrard, E., Holland, A., Nugent, C.: Using case-based reasoning in an algorithm portfolio for constraint solving. In: Irish Conference on Artificial Intelligence and Cognitive Science (2008)Google Scholar
  31. 31.
    Pardalos, P.M.: Parallel Processing of Discrete Problems, Volume 106 of the IMA Volumes in Mathematics and Its Applications Edition. Springer, Berlin (1999)Google Scholar
  32. 32.
    Pedro, V., Abreu, S.: Distributed work stealing for constraint solving. In: CoRR, abs/1009.3800 (2010)Google Scholar
  33. 33.
    Perron, L.: Search procedures and parallelism in constraint programming. Princ. Pract. Constr. Program. (1999)Google Scholar
  34. 34.
    Pardalos, M.R.P.M., Ramakrishnan, K.: Parallel Processing of Discrete Optimization Problems. American Mathematical Society, Dimacs Series, vol. 22 edition (1995)Google Scholar
  35. 35.
    Régin, J.-C., Rezgui, M., Malapert, A.: Embarrassingly parallel search. In: 19th International Conference CP 2013 Uppsala Sweden (2013)Google Scholar
  36. 36.
    Rolf, C.C.: Parallelism in Constraint Programming. PhD thesis, Department of Computer Science, Lund University (2011)Google Scholar
  37. 37.
    Schulte, C.: Parallel search made simple. In: University of Singapore, pp. 41–57 (2000)Google Scholar
  38. 38.
    Schulte, C., Tack, G., Lagerkvist, M.Z.: Modeling and Programming with GecodeGoogle Scholar
  39. 39.
    Shylo, O.V., Middelkoop, T., Pardalos, P.M.: Restart strategies in optimization: parallel and serial cases. Parallel Comput. 37(1), 60–68 (2011)MathSciNetCrossRefzbMATHGoogle Scholar
  40. 40.
    Theodor Crainic, C.R., Le Cun, B.: Parallel Branch and Bound Algorithms, Chapter 1. Wiley, USA (2006)Google Scholar
  41. 41.
    van Omme, N., Perron, L., Furnon, V.: Or-Tools. Technical Report, Google (2012)Google Scholar
  42. 42.
    Vander-Swalmen, P., Dequen, G., Krajecki, M.: Designing a parallel collaborative sat solver. In: 17th International Conference on Parallel and Distributed Processing Techniques and Applications. CSREA Press, USA (2011)Google Scholar
  43. 43.
    Xie, F., Davenport, A.: Solving scheduling problems using parallel message-passing based constraint programming. In: Proceedings of the Workshop on Constraint Satisfaction Techniques for Planning and Scheduling Problems COPLAS, pp. 53–58 (2009)Google Scholar
  44. 44.
    Yokoo, M., Durfee, E.H., Ishida, T., Kuwabara, K.: The distributed constraint satisfaction problem: formalization and algorithms. IEEE Trans. Knowl. Data Eng. 10, 673–685 (1998)CrossRefGoogle Scholar
  45. 45.
    Yun, X., Epstein, S.L.: A hybrid paradigm for adaptive parallel search. In: CP, pp. 720–734 (2012)Google Scholar

Copyright information

© Springer Science+Business Media New York 2015

Authors and Affiliations

  • Tarek Menouer
    • 1
  • Mohamed Rezgui
    • 2
  • Bertrand Le Cun
    • 1
  • Jean-Charles Régin
    • 2
  1. 1.Prism LaboratoryUniversity of Versailles Saint-Quentin-en-YvelinesVersaillesFrance
  2. 2.I3S LaboratoryUniversity of Nice Sophia AntipolisNiceFrance

Personalised recommendations