Skip to main content
Log in

Mixing Static and Dynamic Partitioning to Parallelize a Constraint Programming Solver

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15

Similar content being viewed by others

Notes

  1. Constraint Programming is sometimes called Branch and Infer.

  2. This work is funded by PAJERO Bpifrance project.

References

  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)

  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)

  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)

  4. Blumofe, R.D., Leiserson, C.E.: Scheduling multithreaded computations by work stealing. J. ACM 46(5), 720–748 (1999)

    Article  MathSciNet  MATH  Google Scholar 

  5. Bordeaux, L., Hamadi, Y., Samulowitz, H.: Experiments with massively parallel constraint solving. In: IJCAI, pp. 443–448 (2009)

  6. Choco solver http://www.emn.fr/z-info/choco-solver/. Accessed 14 April 2014 (2013)

  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)

  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)

    Chapter  Google Scholar 

  9. Gendron, B., Crainic, T.G.: Parallel branch-and-bound algorithms: survey and synthesis. Oper. Res. 42(06), 1042–1066 (1994)

    Article  MathSciNet  MATH  Google Scholar 

  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)

  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)

    Chapter  Google Scholar 

  12. Glucose sat solver https://www.lri.fr/simon/?page=glucose. Accessed 14 April 2014

  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)

  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)

  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. 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)

  17. Korf, R.E.: Depth-first iterative-deepening: an optimal admissible tree search. Artif. Intell. 27(1), 97–109 (1985)

    Article  MathSciNet  MATH  Google Scholar 

  18. Le Cun, B., Menouer, T., Vander-Swalmen, P.: Bobpp. http://forge.prism.uvsq.fr/projects/bobpp. Accessed 14 April 2014

  19. Matteo Fischetti, M.M., Salvagnin, D.: Self-splitting of workload in parallel computation. In: CPAIOR’14 (2014)

  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)

  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)

  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)

  23. Michel, L., See, A., Hentenryck, P.V.: Transparent Parallelization of Constraint Programs on Computer Clusters (2008)

  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)

  25. Michel, L., See, A., Van Hentenryck, P.: Transparent parallelization of constraint programming. Inf. J. Comput. 21(3), 363–382 (2009)

    Article  MATH  Google Scholar 

  26. Minizinc challenge http://www.minizinc.org/challenge.html. Accessed 14 April 2014

  27. Minizinc challenge http://www.minizinc.org/challenge2012/challenge.html. Accessed 14 April 2014 (2012)

  28. NICTA: Specification of Zinc and Minizinc. Technical Report, Victoria Research Lab, Melbourne, Australia (2011)

  29. Numberjack solver http://numberjack.ucc.ie/. Accessed 14 April 04 2014 (2013)

  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)

  31. Pardalos, P.M.: Parallel Processing of Discrete Problems, Volume 106 of the IMA Volumes in Mathematics and Its Applications Edition. Springer, Berlin (1999)

  32. Pedro, V., Abreu, S.: Distributed work stealing for constraint solving. In: CoRR, abs/1009.3800 (2010)

  33. Perron, L.: Search procedures and parallelism in constraint programming. Princ. Pract. Constr. Program. (1999)

  34. Pardalos, M.R.P.M., Ramakrishnan, K.: Parallel Processing of Discrete Optimization Problems. American Mathematical Society, Dimacs Series, vol. 22 edition (1995)

  35. Régin, J.-C., Rezgui, M., Malapert, A.: Embarrassingly parallel search. In: 19th International Conference CP 2013 Uppsala Sweden (2013)

  36. Rolf, C.C.: Parallelism in Constraint Programming. PhD thesis, Department of Computer Science, Lund University (2011)

  37. Schulte, C.: Parallel search made simple. In: University of Singapore, pp. 41–57 (2000)

  38. Schulte, C., Tack, G., Lagerkvist, M.Z.: Modeling and Programming with Gecode

  39. Shylo, O.V., Middelkoop, T., Pardalos, P.M.: Restart strategies in optimization: parallel and serial cases. Parallel Comput. 37(1), 60–68 (2011)

    Article  MathSciNet  MATH  Google Scholar 

  40. Theodor Crainic, C.R., Le Cun, B.: Parallel Branch and Bound Algorithms, Chapter 1. Wiley, USA (2006)

    Google Scholar 

  41. van Omme, N., Perron, L., Furnon, V.: Or-Tools. Technical Report, Google (2012)

  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)

  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)

  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)

    Article  Google Scholar 

  45. Yun, X., Epstein, S.L.: A hybrid paradigm for adaptive parallel search. In: CP, pp. 720–734 (2012)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Tarek Menouer.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Menouer, T., Rezgui, M., Le Cun, B. et al. Mixing Static and Dynamic Partitioning to Parallelize a Constraint Programming Solver. Int J Parallel Prog 44, 486–505 (2016). https://doi.org/10.1007/s10766-015-0356-7

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10766-015-0356-7

Keywords

Navigation