Academia.edu no longer supports Internet Explorer.
To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser.
This article presents the qualitative and quantitative results of experiments applying parallelism to constraint programming. We do not set out to prove that parallel constraint programming is the perfect problem-solving tool, but rather to characterize what can be expected from this combination and to discover when using parallelism is productive. In these experiments, we do not deal with scalability involving large numbers of processors; nor do we try to solve extremely difficult or large problems by using brute force algorithms running for days, weeks or even longer. Instead, we concentrate on parallelism involving one to four processors and we restrict our solving time to small durations (around 15 minutes in general). This protocol is applied to different series of problems. The results are analyzed in order to gain a better understanding of the practical benefits of parallel constraint programming.
Lecture Notes in Computer Science, 1999
Many problems from artificial intelligence can be described as constraint satisfaction problems over finite domains (CSP(FD)), that is, a solution is an assignment of a value to each problem variable such that a set of constraints is satisfied. Arc-consistency algorithms remove inconsistent values from the set of values that can be assigned to a variable (its domain), thus reducing the search space. We have developed a parallelisation scheme of arc-consistency to be run on MIMD multiprocessor. The set of constraints is divided into N partitions, which are executed in parallel on N processors. The parallelisation scheme has been implemented on a CRAY T3E multiprocessor with up to thirty-four processors. Empirical results on speedup and behaviour are reported and discussed.
2011
With the increased availability of affordable parallel and dis-tributed hardware, programming models for these architectures has be-come the focus of significant attention. Constraint programming, which can be seen as the encoding of processes as a Constraint Satisfaction Problem, because of its data-driven and control-insensitive approach is a prime candidate to serve as the basis for a framework which effectively exploits parallel architectures.
The computing industry is currently facing a ma- jor architectural shift. Extra computing power is not coming anymore from higher processor fre- quencies, but from a growing number of computing cores and processors. For AI, and constraint solv- ing in particular, this raises the question of how to scale current solving techniques to massively par- allel architectures. While prior work focusses mostly on small scale parallel constraint solving, we conduct the first study on scalability of constraint solving on 100 processors and beyond in this paper. We propose techniques that are simple to apply and show empir- ically that they scale surprisingly well. These tech- niques establish a performance baseline for parallel constraint solving technologies against which more sophisticated parallel algorithms need to compete in the future. 1 Context and Goals of the Paper A major achievement of the digital hardware industry in the second half of the 20th century was to engineer processors who...
Lecture Notes in Computer Science, 1999
In this paper, we present a major improvement in the search procedures in constraint programming. First, we integrate various search procedures from AI and OR. Second, we parallelize the search on shared-memory computers. Third, we add an object-oriented extensible control language to implement complex complete and incomplete search procedures. The result is a powerful set of tools which offers both brute force search using simple search procedures and parallelism, and finely tuned search procedures using that expressive control language. With this, we were able both to solve difficult and open problems using complete search procedures, and to quickly produce good results using incomplete search procedures.
PDPTA
Abstract Program parallelization becomes increasingly important when new multi-core architectures provide ways to improve performance. One of the greatest challenges of this development lies in programming parallel applications. Us-ing declarative languages, such as constraint ...
Constraints, 2013
Concurrent Constraint Programming (CCP) has been used over the last two decades as an elegant and expressive model for concurrent systems. It models systems of agents communicating by posting and querying partial information, represented as constraints over the variables of the system. This covers a vast variety of systems as those arising in biological phenomena, reactive systems, netcentric computing and the advent of social networks and cloud computing. In this paper we survey the main applications, developments and current trends of CCP.
Lecture Notes in Computer Science, 2001
Although constraint programming offers a wealth of strong, generalpurpose methods, in practice a complex, real application demands a person who selects, combines, and refines various available techniques for constraint satisfaction and optimization. Although such tuning produces efficient code, the scarcity of human experts slows commercialization. The necessary expertise is of two forms: constraint programming expertise and problem-domain expertise. The former is in short supply, and even experts can be reduced to trial and error prototyping; the latter is difficult to extract. The project described here seeks to automate both the application of constraint programming expertise and the extraction of domain-specific expertise. It applies FORR, an architecture for learning and problem-solving, to constraint solving. FORR develops expertise from multiple heuristics. A successful case study is presented on coloring problems. * This work was performed while this author was at the University of New Hampshire. number of different problem domains. Each solver will incorporate a learned, collaborative "community" of heuristics appropriate for their problem or problem class. Both the way in which they collaborate and some of the heuristics themselves will be learned. This paper reports initial steps toward that goal in the form of a case study that applies FORR, a well-tested, collaborative, problem-solving architecture, to a subset of constraint programming: graph coloring. The FORR architecture permits swift establishment of a well-provisioned base camp from which to explore this research frontier more deeply. Section 2 presents some minimal background, including a description of FORR. Section 3 presents the initial, successful case study. Section 4 outlines further opportunities and challenges. Section 5 is a brief conclusion. 2 The Problem We provide here some minimal background information on CSP's and on the FORR (FOr the Right Reasons) architecture. Further details will be provided on a need-toknow basis during our description of the case study. 2.1 CSP Constraint satisfaction problems involve a set of variables, a domain of values for each variable, and a set of constraints that specify which combinations of values are allowed [5-8]. A solution is a value for each variable, such that all the constraints are satisfied. For example, graph coloring problems are CSP's: the variables are the graph vertices, the values are the available colors, and the constraints specify that neighboring vertices cannot have the same color. The basic CSP paradigm can be extended in various directions, for example to encompass optimization or uncertainty. Solution methods generally involve some form of search, often interleaved with some form of inference. Many practical problems-such as resource allocation, scheduling, configuration, design, and diagnosis-can be modeled as constraint satisfaction problems. The technology has been widely commercialized, in Europe even more so than in the U.S. This is, of course, an NP-hard problem area, but there are powerful methods for solving difficult problems. Artificial intelligence, operations research, and algorithmics all have made contributions. There is considerable interest in constraint programming languages. Although we take an artificial intelligence approach, we expect our results to have implications for constraint programming generally. Constraint satisfaction problem classes can be defined by "structural" or "semantic" features of the problem. These parameterize the problem and establish a multidimensional problem space. We will seek to synthesize specialized solvers that operate efficiently in different portions of that space.
Handbook of Constraint Programming, 2006
A number of operations research (OR) methods have found their way into constraint programming (CP). This development is entirely natural, since OR and CP have similar goals.
1996
This paper describes the rst results from research on the compilation of constraint systems into task level procedural parallel programs. Algorithms are expressed as constraint systems. A data ow graph is derived from the constraint system and a set of input variables. The data ow graph, which exploits the parallelism in the constraints, is mapped to the target language CODE 2.0, which represents parallel computation structures as generalized dependence graphs. Finally, parallel C programs are generated. The granularity of the derived data ow graphs depends upon the complexity of the operations directly represented in the constraint system. To extract parallel programs of appropriate granularity, the following features have been included: (i) modularity, (ii) operations over structured types as primitives, (iii) de nition of sequential C functions. A prototype of the compiler has been implemented. The domain of matrix computations has been targeted for applications. Some examples have been programmed. Initial results are encouraging.
EPiC series in computing, 2018
The inherent complexity of parallel computing makes development, resource monitoring, and debugging for parallel constraint-solving-based applications difficult. This paper presents SMTS, a framework for parallelizing sequential constraint solving algorithms and running them in distributed computing environments. The design (i) is based on a general parallelization technique that supports recursively combining algorithm portfolios and divide-and-conquer with the exchange of learned information, (ii) provides monitoring by visually inspecting the parallel execution steps, and (iii) supports interactive guidance of the algorithm through a web interface. We report positive experiences on instantiating the framework for one SMT solver and one IC3 solver, debugging parallel executions, and visualizing solving, structure, and learned clauses of SMT instances.
Lecture Notes in Computer Science, 2004
As a case study that illustrates our view on coordination and component-based software engineering, we present the design and implementation of a parallel constraint solver. The parallel solver coordinates autonomous instances of a sequential constraint solver, which is used as a software component. The component solvers achieve load balancing of tree search through a time-out mechanism. Experiments show that the purely exogenous mode of coordination employed here yields a viable parallel solver that effectively reduces turn-around time for constraint solving on a broad range of hardware platforms.
Proceedings of the International Symposium on Combinatorial Search
This paper introduces two adaptive paradigms that parallelize search for solutions to constraint satisfaction problems. Both are intended for any sequential solver that uses contention-oriented variable-ordering heuristics and restart strategies. Empirical results demonstrate that both paradigms improve the search performance of an underlying sequential solver, and also solve challenging problems left open after recent solver competitions.
Proceedings of WDS99 (invited lecture), Prague, June, 1999
Constraint programming (CP) is an emergent software technology for declarative description and effective solving of large, particularly combinatorial, problems especially in areas of planning and scheduling. It represents the most exciting developments in programming languages of the last decade and, not surprisingly, it has recently been identified by the ACM (Association for Computing Machinery) as one of the strategic directions in computer research. Not only it is based on a strong theoretical foundation but it is attracting widespread commercial interest as well, in particular, in areas of modelling heterogeneous optimisation and satisfaction problems. In the paper, we give a survey of constraint programming technology and its applications starting from the history context and interdisciplinary nature of CP. The central part of the paper is dedicated to the description of main constraint satisfaction techniques and industrial applications. We conclude with the overview of limitations of current CP tools and with outlook of future directions.
1994
A number of recent studies have examined how the dif- ficulty of various NP-hard problems varies with simple parameters describing their structure. In particular, they have identified parameter values that distinguish regions with many hard problem instances from relatively easier ones. In this paper we continue this work by examining independent parallel search. SpecificalIy, we evaluate the speedup as function
LISP and Symbolic Computation, 1994
In this paper we describe the parallelization of a medium-size symbolic fixed-point computation, CONSAT. CONSAT is a constraint satisfaction system that computes globally consistent solutions. The parallel version of CONSAT is implemented using abstractions from a parallel programming toolbox we developed. The toolbox is intended for novice parallel programmers, and programs based on abstractions from this toolbox may be executed on both uniprocessors and shared-memory multiprocessors without modifications. We explain how parallelism is introduced, and how concurrent accesses to shared data structures are handled. We will also describe the performance of CONSAT on sample inputs.
Lecture Notes in Computer Science, 2006
Constraint Programming is a powerful programming paradigm with a great impact on a number of important areas such as logic programming [45], concurrent programming [42], artificial intelligence [12], and combinatorial optimization [46]
2007
Abstract. Constraint programming libraries are useful when building applications developed mostly in mainstream programming languages: they do not require the developers to acquire skills for a new language, providing instead declarative programming tools for use within conventional systems. Some approaches to constraint programming favour completeness, such as propagation-based systems.
2007
Constraint Programming is a powerful approach for modeling and solving many combinatorial problems, scalability, however, remains an issue in practice. Abstraction and reformulation techniques are often sought to overcome the complexity barrier. In this paper we introduce four reformulation techniques that operate on the various components of a Constraint Satisfaction Problem (CSP) in order to reduce the cost of problem solving and facilitate scalability.
Journal of Parallel and Distributed Computing, 1992
Loading Preview
Sorry, preview is currently unavailable. You can download the paper by clicking the button above.