Skip to Main content Skip to Navigation
Journal articles

Mixing Static and Dynamic Partitioning to Parallelize a Constraint Programming Solver

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.
Document type :
Journal articles
Complete list of metadatas

Cited literature [34 references]  Display  Hide  Download
Contributor : Jean-Charles Regin <>
Submitted on : Saturday, July 16, 2016 - 12:03:47 PM
Last modification on : Tuesday, May 26, 2020 - 6:50:56 PM



Tarek Menouer, Mohamed Rezgui, Bertrand Le Cun, Jean-Charles Régin. Mixing Static and Dynamic Partitioning to Parallelize a Constraint Programming Solver. International Journal of Parallel Programming, Springer Verlag, 2016, 44 (3), pp.486-505. ⟨10.1007/s10766-015-0356-7⟩. ⟨hal-01344092⟩



Record views