Abstract
Constraint programming (CP) is an efficient technique for solving combinatorial optimization problems. In CP a problem is defined over variables that take values in domains and constraints which restrict the allowed combination of values. CP uses for each constraint an algorithm that removes values of variables that are inconsistent with the constraint. These algorithms are called while a domain is modified. Then, a search algorithm such as a backtracking or branch-and-bound algorithm is called to find solutions. Several methods have been proposed to combine CP with parallelism. In this chapter, we present some of them: parallelization of the propagator, parallel propagation, search splitting, also called work-stealing, problem decomposition, also called embarrassingly parallel search (EPS), and portfolio approaches. We detail the two giving the best performances in practice: the work-stealing approach and embarrassingly parallel search. We give some experiments supporting this claim on a single multi-core machine, on a data center and on the cloud.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
16th IEEE International Conference on Tools with Artificial Intelligence (ICTAI 2004), 15-17 November 2004, Boca Raton, FL, USA. IEEE Computer Society (2004). http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=9460
Amadini, R., Gabbrielli, M., Mauro, J.: An Empirical Evaluation of Portfolios Approaches for Solving CSPs. 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. 316–324. Springer Berlin Heidelberg (2013). https://doi.org/10.1007/978-3-642-38171-3_21. http://dx.doi.org/10.1007/978-3-642-38171-3_21
Amdahl, G.: Validity of the Single Processor Approach to Achieving Large Scale Computing Capabilities. In: Proceedings of the April 18-20, 1967, Spring Joint Computer Conference, AFIPS ’67, pp. 483–485. ACM, New York, NY, USA (1967)
Bader, D., Hart, W., Phillips, C.: Parallel Algorithm Design for Branch and Bound. In: H. G (ed.) Tutorials on Emerging Methodologies and Applications in Operations Research, International Series in Operations Research & Management Science, vol. 76, pp. 5–1–5–44. Springer, New York (2005). https://doi.org/10.1007/0-387-22827-6_5
Bordeaux, L., Hamadi, Y., Samulowitz, H.: Experiments with Massively Parallel Constraint Solving. In: Boutilier [8], pp. 443–448
Bordeaux, L., Hamadi, Y., Samulowitz, H.: Experiments with massively parallel constraint solving. In: Boutilier [8], pp. 443–448
Boussemart, F., Hemery, F., Lecoutre, C., Sais, L.: Boosting systematic search by weighting constraints. In: ECAI, vol. 16, p. 146 (2004)
Boutilier, C. (ed.): IJCAI 2009, Proceedings of the 21st International Joint Conference on Artificial Intelligence, Pasadena, California, USA, July 11-17, 2009 (2009)
Budiu, M., Delling, D., Werneck, R.: DryadOpt: Branch-and-bound on distributed data-parallel execution engines. In: Parallel and Distributed Processing Symposium (IPDPS), 2011 IEEE International, pp. 1278–1289 (2011)
Burton, F.W., Sleep, M.R.: Executing Functional Programs on a Virtual Tree of Processors. In: Proceedings of the 1981 Conference on Functional Programming Languages and Computer Architecture, FPCA ’81, pp. 187–194. ACM, New York, NY, USA (1981)
Capit, N., Da Costa, G., Georgiou, Y., Huard, G., Martin, C., Mounie, G., Neyron, P., Richard, O.: A Batch Scheduler with High Level Components. In: Proceedings of the Fifth IEEE International Symposium on Cluster Computing and the Grid (CCGrid’05) - Volume 2 - Volume 02, CCGRID ’05, pp. 776–783. IEEE Computer Society, Washington, DC, USA (2005). http://dl.acm.org/citation.cfm?id=1169223.1169583
Choco, T.: Choco: an open source java constraint programming library. Ecole des Mines de Nantes, Research report 1, 10–02 (2010)
Choco solver http://www.emn.fr/z-info/choco-solver/ (2013).
Chong, Y.L., Hamadi, Y.: Distributed Log-Based Reconciliation. In: Proceedings of the 2006 Conference on ECAI 2006: 17th European Conference on Artificial Intelligence August 29 – September 1, 2006, Riva Del Garda, Italy, pp. 108–112. IOS Press, Amsterdam, The Netherlands (2006). http://dl.acm.org/citation.cfm?id=1567016.1567045
Chu, G., Schulte, C., Stuckey, P.J.: Confidence-Based Work Stealing in Parallel Constraint Programming. In: Gent [27], pp. 226–241
Chu, G., Schulte, C., Stuckey, P.J.: Confidence-based work stealing in parallel constraint programming. In: Gent [27], pp. 226–241
Cire, A.A., Kadioglu, S., Sellmann, M.: Parallel Restarted Search. In: Proceedings of the Twenty-Eighth AAAI Conference on Artificial Intelligence, AAAI’14, pp. 842–848. AAAI Press (2014). http://dl.acm.org/citation.cfm?id=2893873.2894004
Cornuéjols, G., Karamanov, M., Li, Y.: Early estimates of the size of branchand-bound trees. INFORMS Journal on Computing 18(1), 86–96 (2006)
Cornuéjols, G., Karamanov, M., Li, Y.: Early Estimates of the Size of Branchand-Bound Trees. INFORMS Journal on Computing 18, 86–96 (2006)
Crainic, T.G., Le Cun, B., Roucairol, C.: Parallel branch-and-bound algorithms. Parallel Combinatorial Optimization 1, 1–28 (2006)
De Kergommeaux, J.C., Codognet, P.: Parallel logic programming systems. ACM Computing Surveys (CSUR) 26(3), 295–336 (1994)
De Nicola, R., Ferrari, G.L., Meredith, G. (eds.): Coordination Models and Languages, 6th International Conference, COORDINATION 2004, Pisa, Italy, February 24-27, 2004, Proceedings, Lecture Notes in Computer Science, vol. 2949. Springer (2004)
Ezzahir, R., Bessière, C., Belaissaoui, M., Bouyakhf, E.H.: DisChoco: A platform for distributed constraint programming. In: DCR’07: Eighth International Workshop on Distributed Constraint Reasoning - In conjunction with IJCAI’07, pp. 16–21. Hyderabad, India (2007). https://hal-lirmm.ccsd.cnrs.fr/lirmm-00189778
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, Cork, Ireland, May 19-23, 2014. Proceedings, pp. 394–404. Springer International Publishing, Cham (2014). https://doi.org/10.1007/978-3-319-07046-9_28. http://dx.doi.org/10.1007/978-3-319-07046-9_28
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)
Gendron, B., Crainic, T.G.: Parallel branch-and-bound algorithms: Survey and synthesis. Operations research 42(6), 1042–1066 (1994)
Gent, I.P. (ed.): Principles and Practice of Constraint Programming - CP 2009, 15th International Conference, CP 2009, Lisbon, Portugal, September 20-24, 2009, Proceedings, Lecture Notes in Computer Science, vol. 5732 (2009)
Gomes, C., Selman, B.: Algorithm Portfolio Design: Theory vs. Practice. In: Proceedings of the Thirteenth Conference on Uncertainty in Artificial Intelligence, pp. 190–197 (1997)
Gomes, C., Selman, B.: Search strategies for hybrid search spaces. In: Tools with Artificial Intelligence, 1999. Proceedings. 11th IEEE International Conference, pp. 359–364. IEEE (1999)
Gomes, C., Selman, B.: Hybrid Search Strategies For Heterogeneous Search Spaces. International Journal on Artificial Intelligence Tools 09, 45–57 (2000)
Gomes, C., Selman, B.: Algorithm Portfolios. Artificial Intelligence 126, 43–62 (2001)
Gropp,W., Lusk, E.: TheMPI communication library: its design and a portable implementation. In: Scalable Parallel Libraries Conference, Proceedings of the, pp. 160–165. IEEE (1993)
Gupta, G., Pontelli, E., Ali, K.A., Carlsson, M., Hermenegildo, M.V.: Parallel execution of Prolog Programs: a Survey. ACM Transactions on Programming Languages and Systems (TOPLAS) 23(4), 472–602 (2001)
Halstead, R.: Implementation of MultiLisp: Lisp on a Multiprocessor. In: Proceedings of the 1984 ACM Symposium on LISP and Functional Programming, LFP ’84, pp. 9–17. ACM, New York, NY, USA (1984)
Hamadi, Y.: Optimal Distributed Arc-Consistency. Constraints 7, 367–385 (2002)
Hamadi, Y., Jabbour, S., Sais, L.: ManySAT: a Parallel SAT Solver. Journal on Satisfiability, Boolean Modeling and Computation 6(4), 245–262 (2008)
Haralick, R., Elliot, G.: Increasing tree search efficiency for constraint satisfaction problems. Artificial Intelligence 14, 263–313 (1980)
Harvey, W.D., Ginsberg, M.L.: Limited Discrepancy Search. In: Proceedings of the Fourteenth International Joint Conference on Artificial Intelligence, IJCAI 95, Montréal, Québec, Canada, August 20-25 1995, 2 Volumes, pp. 607–615 (1995)
Hirayama, K., Yokoo, M.: Distributed Partial Constraint Satisfaction Problem. In: Principles and Practice of Constraint Programming-CP97, pp. 222–236. Springer (1997)
Hyde, P.: Java thread programming, vol. 1. Sams (1999)
Jaffar, J., Santosa, A.E., Yap, R.H.C., Zhu, K.Q.: Scalable Distributed Depth-First Search with Greedy Work Stealing. In: 16th IEEE International Conference on Tools with Artificial Intelligence [1], pp. 98–103. http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=9460
Jaffar, J., Santosa, A.E., Yap, R.H.C., Zhu, K.Q.: Scalable distributed depth-first search with greedy work stealing. In: ICTAI [1], pp. 98–103. http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=9460
Kale, L., Krishnan, S.: CHARM++: a portable concurrent object oriented system based on C++, vol. 28. ACM (1993)
Kasif, S.: On the Parallel Complexity of Discrete Relaxation in Constraint Satisfaction networks. Artificial Intelligence 45, 275–286 (1990)
Kautz, H., Horvitz, E., Ruan, Y., Gomes, C., Selman, B.: Dynamic Restart Policies. 18th National Conference on Artificial Intelligence AAAI/IAAI 97, 674–681 (2002)
Kilby, P., Slaney, J.K., Thiébaux, S., Walsh, T.: Estimating search tree size. In: AAAI, pp. 1014–1019 (2006)
Kjellerstrand, H.: Håkan Kjellerstrand’s Blog. http://www.hakank.org/ (2014)
Kleiman, S., Shah, D., Smaalders, B.: Programming with threads. Sun Soft Press (1996)
Knuth, D.E.: Estimating the efficiency of backtrack programs. Mathematics of Computation 29, 121–136 (1975)
Korf, R.: Depth-first iterative-deepening: An optimal admissible tree search. Artificial Intelligence 27, 97–109 (1985)
Kowalski, R.: Algorithm = logic + control. Commun. ACM 22(7), 424–436 (1979)
Le Cun, B., Menouer, T., Vander-Swalmen, P.: Bobpp. http://forge.prism.uvsq.fr/projects/bobpp (2007)
Léauté, T., Ottens, B., Szymanek, R.: FRODO 2.0: An open-source framework for distributed constraint optimization. In: Boutilier [8], pp. 160–164
Leiserson, C.E.: The Cilk++ concurrency platform. The Journal of Supercomputing 51(3), 244–257 (2010)
Lester, B.: The art of parallel programming. Prentice Hall, Englewood Cliffs, NJ (1993)
Li, H.: Introducing Windows Azure. Apress, Berkeley, CA, USA (2009)
Lodi, A., Milano, M., Toth, P. (eds.): Integration of AI and OR Techniques in Constraint Programming for Combinatorial Optimization Problems, 7th International Conference, CPAIOR 2010, Bologna, Italy, June 14-18, 2010. Proceedings, Lecture Notes in Computer Science, vol. 6140. Springer (2010)
Luby, M., Sinclair, A., Zuckerman, D.: Optimal Speedup of Las Vegas Algorithms. Inf. Process. Lett. 47, 173–180 (1993)
Machado, R., Pedro, V., Abreu, S.: On the Scalability of Constraint Programming on Hierarchical Multiprocessor Systems. In: ICPP, pp. 530–535. IEEE (2013)
Malapert, A., Lecoutre, C.: À propos de la bibliothèque de modèles XCSP. In: 10èmes Journées Francophones de Programmation par Contraintes (JFPC’15). Angers, France (2014)
Malapert, A., Régin, J., Rezgui, M.: Embarrassingly parallel search in constraint programming. J. Artif. Intell. Res. (JAIR) 57, 421–464 (2016). https://doi.org/10.1613/jair.5247. http://dx.doi.org/10.1613/jair.5247
Menouer, T.: Parallélisations de Méthodes de Programmation Par Contraintes. Ph.D. thesis, Université de Versailles Saint-Quentin-en-Yvelines (2015)
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 ProcessingWorkshops and PhD Forum, pp. 1771–1777 (2013). https://doi.org/10.1109/ipdpsw.2013.210. http://doi.ieeecomputersociety.org/10.1109/IPDPSW.2013.210
Menouer, T., Le Cun, B.: 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)
Menouer, T., Le Cun, B.: 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)
Menouer, T., Rezgui, M., Cun, B.L., Régin, J.: Mixing static and dynamic partitioning to parallelize a constraint programming solver. International Journal of Parallel Programming 44(3), 486–505 (2016). https://doi.org/10.1007/s10766-015-0356-7. http://dx.doi.org/10.1007/s10766-015-0356-7
Michel, L., See, A., Hentenryck, P.V.: Transparent parallelization of constraint programming. INFORMS Journal on Computing 21(3), 363–382 (2009)
Michel, L., Van Hentenryck, P.: Activity-based search for black-box constraint programming solvers. In: Integration of AI and OR Techniques in Contraint Programming for Combinatorial Optimzation Problems, pp. 228–243. Springer (2012)
Microsoft Corporation: Microsoft HPC Pack 2012 R2 and HPC Pack 2012. http://technet.microsoft.com/en-us/library/jj899572.aspx (2015)
Minizinc challenge http://www.minizinc.org/challenge2012/challenge.html (2012). Accessed: 14-04-2014
Moisan, T., Gaudreault, J., Quimper, C.G.: Parallel Discrepancy-Based Search. In: Principles and Practice of Constraint Programming, Lecture Notes in Computer Science, vol. 8124, pp. 30–46. Springer (2013)
Moisan, T., Quimper, C.G., Gaudreault, J.: Parallel Depth-bounded Discrepancy Search. In: H. Simonis (ed.) Integration of AI and OR Techniques in Constraint Programming: 11th International Conference, CPAIOR 2014, Cork, Ireland, May 19-23, 2014. Proceedings, pp. 377–393. Springer International Publishing, Cham (2014). https://doi.org/10.1007/978-3-319-07046-9_27. http://dx.doi.org/10.1007/978-3-319-07046-9_27
Mueller, F., et al.: A Library Implementation of POSIX Threads under UNIX. In: USENIX Winter, pp. 29–42 (1993)
Nguyen, T., Deville, Y.: A Distributed Arc-Consistency Algorithm. Science of Computer Programming 30(1–2), 227 – 250 (1998). http://dx.doi.org/10.1016/S0167-6423(97)00012-9. http://www.sciencedirect.com/science/article/pii/S0167642397000129. Concurrent Constraint Programming
NICTA Optimisation Research Group: MiniZinc and FlatZinc. http://www.g12.csse.unimelb.edu.au/minizinc/ (2012)
Nielsen, M.: Parallel Search in Gecode. Master’s thesis, KTH Royal Institute of Technology (2006)
O’Mahony, E., Hebrard, E., Holland, A., Nugent, C., O’Sullivan, B.: Using case-based reasoning in an algorithm portfolio for constraint solving. In: Irish Conference on Artificial Intelligence and Cognitive Science, pp. 210–216 (2008)
Palmieri, A., Régin, J., Schaus, P.: Parallel strategies selection. In: M. Rueher (ed.) Principles and Practice of Constraint Programming - 22nd International Conference, CP 2016, Toulouse, France, September 5-9, 2016, Proceedings, Lecture Notes in Computer Science, vol. 9892, pp. 388–404. Springer (2016). https://doi.org/10.1007/978-3-319-44953-1_25. http://dx.doi.org/10.1007/978-3-319-44953-1_25
Perron, L.: Search Procedures and Parallelism in Constraint Programming. In: Principles and Practice of Constraint Programming – CP’99: 5th International Conference, CP’99, Alexandria, VA, USA, October 11-14, 1999. Proceedings, pp. 346–360. Springer Berlin Heidelberg, Berlin, Heidelberg (1999). https://doi.org/10.1007/978-3-540-48085-3_25. http://dx.doi.org/10.1007/978-3-540-48085-3_25
Perron, L.: Search procedures and parallelism in constraint programming. In: CP, Lecture Notes in Computer Science, vol. 1713, pp. 346–360 (1999)
Perron, L., Nikolaj, V.O., Vincent, F.: Or-Tools. Tech. rep., Google (2012)
Pruul, E., Nemhauser, G., Rushmeier, R.: Branch-and-bound and Parallel Computation: A historical note. Operations Research Letters 7, 65–69 (1988)
cois Puget, J.F.: ILOG CPLEX CP Optimizer : A C++ implementation of CLP. http://www.ilog.com/ (1994)
Refalo, P.: Impact-based search strategies for constraint programming. In: M. Wallace (ed.) CP, Lecture Notes in Computer Science, vol. 3258, pp. 557–571. Springer (2004)
Régin, J.C.: A filtering algorithm for constraints of difference in CSPs. In: Proceedings AAAI-94, pp. 362–367. Seattle, Washington (1994)
Régin, J.C.: Global Constraints: a Survey. In Milano, M., Van-Hentenryck, P. eds., Hybrid Optimization. Springer (2011)
Régin, J.C., Rezgui, M., Malapert, A.: Embarrassingly Parallel Search. In: Principles and Practice of Constraint Programming: 19th International Conference, CP 2013, Uppsala, Sweden, September 16-20, 2013. Proceedings, pp. 596–610. Springer Berlin Heidelberg, Berlin, Heidelberg (2013). https://doi.org/10.1007/978-3-642-40627-0_45. http://dx.doi.org/10.1007/978-3-642-40627-0_45
Régin, J.C., Rezgui, M., Malapert, A.: Improvement of the Embarrassingly Parallel Search for Data Centers. In: B. O’Sullivan (ed.) Principles and Practice of Constraint Programming: 20th International Conference, CP 2014, Lyon, France, September 8-12, 2014. Proceedings, Lecture Notes in Computer Science, vol. 8656, pp. 622–635. Springer International Publishing, Cham (2014). https://doi.org/10.1007/978-3-319-10428-7_45. http://dx.doi.org/10.1007/978-3-319-10428-7_45
Reynolds, J.C.: The discoveries of continuations. Lisp and Symbolic Computation. 6(3/4), 233–248. (1993)
Rezgui, M., Régin, J.C., Malapert, A.: Using Cloud Computing for Solving Constraint Programming Problems. In: First Workshop on Cloud Computing and Optimization, a conference workshop of CP 2014. Lyon, France (2014)
Rolf, C.C., Kuchcinski, K.: Parallel Consistency in Constraint Programming. PDPTA ’09: The 2009 International Conference on Parallel and Distributed Processing Techniques and Applications 2, 638–644 (2009)
Roussel, O., Lecoutre, C.: Xml representation of constraint networks format. http://www.cril.univ-artois.fr/CPAI08/XCSP2_1Competition.pdf (2008)
Schaus, P.: Oscar, Operational Research in Scala. https://bitbucket.org/oscarlib/oscar/wiki/Home
Schulte, C.: Parallel Search Made Simple. In Proceedings of TRICS: Techniques foR Implementing Constraint programming Systems, a post-conference workshop of CP 2000, pp. 41–57. Singapore (2000)
Schulte, C.: Gecode: Generic Constraint Development Environment. http://www.gecode.org/ (2006)
Van Hentenryck, P., Michel, L.: The objective-CP optimization system. In: C. Schulte (ed.) Principles and Practice of Constraint Programming - 19th International Conference, CP 2013, Uppsala, Sweden, September 16-20, 2013. Proceedings, Lecture Notes in Computer Science, vol. 8124, pp. 8–29. Springer (2013). https://doi.org/10.1007/978-3-642-40627-0_5. http://dx.doi.org/10.1007/978-3-642-40627-0_5
Vidal, V., Bordeaux, L., Hamadi, Y.: Adaptive K-Parallel Best-First Search: A Simple but Efficient Algorithm for Multi-Core Domain-Independent Planning. In: Proceedings of the Third International Symposium on Combinatorial Search. AAAI Press (2010)
Wahbi, M., Ezzahir, R., Bessiere, C., Bouyakhf, E.H.: DisChoco 2: A Platform for Distributed Constraint Reasoning. In: Proceedings of the IJCAI’11 workshop on Distributed Constraint Reasoning, DCR’11, pp. 112–121. Barcelona, Catalonia, Spain (2011)
Wilkinson, B., Allen, M.: Parallel Programming: Techniques and Application Using Networked Workstations and Parallel Computers, 2nd edition, Prentice-Hall Inc. (2005)
Xie, F., Davenport, A.: Solving scheduling problems using parallel messagepassing based constraint programming. In: Proceedings of the Workshop on Constraint Satisfaction Techniques for Planning and Scheduling Problems COPLAS, pp. 53–58 (2009)
Xie, F., Davenport, A.J.: Massively parallel constraint programming for supercomputers: Challenges and initial results. In: Lodi et al. [57], pp. 334–338
Yokoo, M., Ishida, T., Kuwabara, K.: Distributed Constraint Satisfaction for DAI Problems. In: Proceedings of the 1990 Distributed AIWorkshop. Bandara, TX (1990)
Zoeteweij, P., Arbab, F.: A component-based parallel constraint solver. In: De Nicola et al. [22], pp. 307–322
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
Régin, JC., Malapert, A. (2018). Parallel Constraint Programming. In: Hamadi, Y., Sais, L. (eds) Handbook of Parallel Constraint Reasoning. Springer, Cham. https://doi.org/10.1007/978-3-319-63516-3_9
Download citation
DOI: https://doi.org/10.1007/978-3-319-63516-3_9
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)