Load Balancing for Constraint Solving with GPUs

Solving a complex Constraint Satisfaction Problem (CSP) is a computationally hard task which may require a considerable amount of time. Parallelism has been applied successfully to the job and there are already many applications capable of harnessing the parallel power of modern CPUs to speed up the solving process. Current Graphics Processing Units (GPUs), containing from a few hundred to a few thousand cores, possess a level of parallelism that surpasses that of CPUs and there are much less applications capable of solving CSPs on GPUs, leaving space for further improvement. This paper describes work in progress in the solving of CSPs on GPUs, CPUs and other devices, such as Intel Many Integrated Cores (MICs), in parallel. It presents the gains obtained when applying more devices to solve some problems and the main challenges that must be faced when using devices with as different architectures as CPUs and GPUs, with a greater focus on how to effectively achieve good load balancing between such heterogeneous devices.

[1]  Philippe Codognet,et al.  A GPU Implementation of Parallel Constraint-Based Local Search , 2014, 2014 22nd Euromicro International Conference on Parallel, Distributed, and Network-Based Processing.

[2]  Jack J. Dongarra,et al.  From CUDA to OpenCL: Towards a performance-portable solution for multi-platform GPU programming , 2012, Parallel Comput..

[3]  P. R. Nachtsheim Solving constraint satisfaction problems , 1989 .

[4]  Jean-Charles Régin,et al.  Embarrassingly Parallel Search , 2013, CP.

[5]  Christian Schulte,et al.  Parallel Search Made Simple , 2000 .

[6]  Krzysztof Kuchcinski,et al.  Parallel Solving in Constraint Programming , 2010 .

[7]  Helmut Simonis,et al.  Integration of AI and OR Techniques in Constraint Programming: 11th International Conference, CPAIOR 2014, Cork, Ireland, May 19-23, 2014. Proceedings , 2014, CPAIOR.

[8]  V. Pedro,et al.  On the Scalability of Constraint Programming on Hierarchical Multiprocessor Systems , 2013, 2013 42nd International Conference on Parallel Processing.

[9]  Jason Maassen,et al.  Performance Models for CPU-GPU Data Transfers , 2014, 2014 14th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing.

[10]  Nagiza F. Samatova,et al.  Lessons Learned from Exploring the Backtracking Paradigm on the GPU , 2011, Euro-Par.

[11]  Timothy G. Mattson,et al.  OpenCL Programming Guide , 2011 .

[12]  Alessandro Dal Palù,et al.  Exploring the Use of GPUs in Constraint Solving , 2014, PADL.

[13]  J. Nickolls Graphics and Computing GPUs , 2022 .

[14]  Peter J. Stuckey,et al.  Confidence-Based Work Stealing in Parallel Constraint Programming , 2009, CP.