Open AccessDissertation
Parallelism in Constraint Programming
Carl Christian Rolf
- 01 Jan 2011
TL;DR: This thesis study and present the first constraint framework that automatically parallelizes both the consistency and the search of the solving process in constraint programming (CP), and shows that automatic parallelism in CP can provide very good performance.
read more
Abstract: Writing efficient parallel programs is the biggest challenge of the software industry for the foreseeable future. We are currently in a time when parallel computers are the norm, not the exception. Soon, parallel processors will be standard even in cell phones. Without drastic changes in hardware development, all software must be parallelized to its fullest extent.
Parallelism can increase performance and reduce power consumption at the same time. Many programs will execute faster on a dual-core processor than a single core processor running at twice the speed. Halving the speed of a processor can reduce the power consumption up to four times. Hence, parallelism gives more performance per unit of power to efficient programs.
In order to make use of parallel hardware, we need to overcome the difficulties of parallel programming. To many programmers, it is easier to learn a handful of small domain-specific programming languages than to learn efficient parallel programming. The frameworks for these languages can then automatically parallelize the program. Automatically parallelizing traditional programs is usually much more difficult.
In this thesis, we study and present parallelism in constraint programming (CP). We have developed the first constraint framework that automatically parallelizes both the consistency and the search of the solving process. This allows programmers to avoid the difficult issues of parallel programming. We also study distributed CP with independent agents and propose solutions to this problem.
Our results show that automatic parallelism in CP can provide very good performance. Our parallel consistency scales very well for problems with many large constraints. We also manage to combine parallel consistency and parallel search with a performance increase. The communication and load-balancing schemes we developed increase the scalability of parallel search. Our model for distributed CP is orders of magnitude faster than traditional approaches. As far as we know, it is the first to solve standard benchmark scheduling problems.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Knowledge mining for cognitive agents through path based forward checking
Tanvir Atahary,Tarek M. Taha,Fredrick Webber,Scott Douglass +3 more
- 01 Jun 2015
TL;DR: A novel high performance path based forward checking CSP algorithm to solve CDOs and compare it to a commonly utilized CSP solving application to enable fast processing and give agents key ideas on how to further reduce the solution space.
25
Hardware Accelerated Cognitively Enhanced Complex Event Processing Architecture
Tanvir Atahary,Tarek M. Taha,Scott Douglass +2 more
- 01 Jul 2013
TL;DR: A cognitively enhanced complex event processing (CECEP) architecture to enable enhanced agent-based decision making is introduced and the parallelization and acceleration of a key knowledge mining process within the architecture on high performance computing platforms are examined.
16
Constraint programming in embedded systems design: Considered helpful
TL;DR: The use of constraint programming (CP) technology for embedded system design problems is discussed and modelling capabilities of CP and basic solving methods are discussed and efficiency of the models and solving process is shown.
12
Anticipated Dynamic Load Balancing Strategy to Parallelize Constraint Programming Search
Tarek Menouer,Bertrand Le Cun +1 more
- 20 May 2013
TL;DR: New strategies using a Work Stealing technique to choose good nodes of the search-space and assigns each sub-tree during the execution of the algorithm in order to reduce the extra costs due to OR-Tools solver are presented.
11
Partitioning Methods to Parallelize Constraint Programming Solver Using the Parallel Framework Bobpp
Tarek Menouer,Bertrand Le Cun,Pascal Vander-Swalmen +2 more
- 01 Jan 2013
TL;DR: This paper presents a parallelization of a Constraint Programming solver, OR-Tools, using the parallel framework Bobpp, and shows how this approach can be used to solve the problem of constrained programming problems.
10
References
Communicating sequential processes
TL;DR: It is suggested that input and output are basic primitives of programming and that parallel composition of communicating sequential processes is a fundamental program structuring method.
Distributed snapshots: determining global states of distributed systems
K. Mani Chandy,Leslie Lamport +1 more
TL;DR: An algorithm by which a process in a distributed system determines a global state of the system during a computation, which helps to solve an important class of problems: stable property detection.
The Landscape of Parallel Computing Research: A View from Berkeley
Krste Asanovic,Ras Bodik,Bryan Catanzaro,Joseph Gebis,Parry Husbands,Kurt Keutzer,David A. Patterson,William Plishker,John Shalf,Samuel Williams,Katherine Yelick +10 more
- 18 Dec 2006
TL;DR: The parallel landscape is frame with seven questions, and the following are recommended to explore the design space rapidly: • The overarching goal should be to make it easy to write programs that execute efficiently on highly parallel computing systems • The target should be 1000s of cores per chip, as these chips are built from processing elements that are the most efficient in MIPS (Million Instructions per Second) per watt, MIPS per area of silicon, and MIPS each development dollar.
•Book
Handbook of Constraint Programming
Francesca Rossi,Peter van Beek,Toby Walsh +2 more
- 01 Jan 2006
TL;DR: Researchers from other fields should find in this handbook an effective way to learn about constraint programming and to possibly use some of the constraint programming concepts and techniques in their work, thus providing a means for a fruitful cross-fertilization among different research areas.
Scheduling multithreaded computations by work stealing
TL;DR: This paper gives the first provably good work-stealing scheduler for multithreaded computations with dependencies, and shows that the expected time to execute a fully strict computation on P processors using this scheduler is 1:1.
Related Papers (5)
Laurent Michel,Andrew See,Pascal Van Hentenryck +2 more
- 23 Sep 2007
Pascal Vander-Swalmen,Gilles Dequen,Michaël Krajecki +2 more
- 01 Jan 2011
Dexter Whitlock,Pradip Dey,Robert M. Hyatt +2 more
- 01 Feb 1988