AITEC Contract Research Projects in FY1997 : Proposal
|
(10) Concurrent Cooperative Parallel Solvers(CCOPS)
Principal Investigator :
| Dr. Frédéric Benhamou, Professor,
|
|
Université de Nantes & Ecole Centrale de Nantes
|
[Contents]
- Background of the research
- Purpose of the research
- Contents of the research
- Project Organization/Research Method
- Resulting Software
Constraint Logic Programming(CLP)[9,6]has shown to be a very active field over
recent years and departs from Logic Programming in replacing unification by
constraint solving on a particular domain of interest, considering the solver
as a black-box that is responsible for checking the consistency of a set of
constraints.
Current CLP languages such as Prolog IV(PrologIA)[7], CHIP(Cosytec)[16] or
clp(FD)(INRIA)[5]have investigated several constraint domains : finite
domains, reals/rationals, Booleans, intervals. Finite domains, for instance,
are well-suited for many real-life applications such as combinatorial problems,
scheduling, cutting-stock, circuit simulation, diagnosis, decision-making,
etc.
On the other hand, interval constraints [11,3,17]address non-linear numerical
problems frequently encountered in engineering, economics, chemistry, etc.
To address the processing of large-scale constraint systems of linear and
non-linear constraints over real numbers, Boolean and integers, we propose to
investigate two promising aspects of constraint solving: the combination of
symbolic and numerical methods and the development of concurrent and parallel
implementations of this cooperation scheme.
In effect, recent advances in the study of constraints over the real numbers
(including finite domain constraints) have shown the practical advantages of
combining symbolic and numerical methods. For example, combining interval
Newton methods and Grobner base computations has been shown to be an efficient
approach for the processing of polynomial systems [2], with many expected
applications in engineering.
With respect to concurrency, its combination with constraint logic programming
has been investigated since the beginning of the 90's, but mostly from the
theoretical point of view, in the so-called concurrent constraint (CC)
paradigm[12]. A few systems have been actually implemented such as CAL at ICOT
[1], AKL(FD) at SICS [4], and the Oz system(DFKI)[14].
However most of this research has investigated concurrency issues at the
language level only and has kept the constraint solving part as a black-box.
The purposed research in this project is to investigate the use of concurrency
in the constraint solver itself, and to develop the notion of combination and
cooperation between several constraint solvers in order to improve the overall
performances of the systems.
The purpose of this research is to develop new constraint solving techniques
and to propose a general framework where several separate constraint solvers
can cooperate and be combined in order to improve constraint processing. We
will propose an implementation of a prototype system by using the KLIC
language developed at ICOT and AITEC and a coordination language between
constraint solvers. This kind of coordination should improve convergence
according to the known properties of cooperating solvers combined with limited
speedups when used in control-parallel execution mode: one solver per process.
We also plan to investigate the relation of this approach to the data-parallel
paradigm so as to make our methods scalable for use on massively parallel
platforms.
More specifically, tight cooperation of symbolic and numeric solvers was shown
to be efficient for solving non-linear real constraints. Symbolic methods are
often used to generate redundant constraints or to simplify constraints in
order to compute more accurate approximations. In this projects, we propose to
merge Grobner bases computations, factorization and substitution over rational
polynomial constraints, interval Newton methods and consistency techniques
over arbitrary real constraints. In the course of any solver's computation,
factorization and enumeration procedures give rise to disjunctions of boxes
which can be treated independently, in data-parallel mode. We will study the
dynamic interaction between the amount of parallelism generated in this manner
and the cost of the load-balancing required to maintain proportional speedups.
Particular attention will be given to the BSP(bulk-synchronous parallel)
cost-prediction formulas as dynamic indicators for "steering" data-parallel
solver cooperation.
- ●Cooperation between solvers:
- Recently, the cooperation of symbolic and interval methods for solving
systems of nonlinear equations has been discussed. However, there is a need to
experiment with cooperation strategies between these methods, i.e. symbolic
methods can be used either as preprocessing steps or during numeric
computations. As example, the efficient cooperation of Grobner bases,
factorizations, substitutions, interval Newton methods and consistency
techniques will be studied. Moreover, the resulting software should handle
disjunctive constraints generated after factorization of polynomial equations.
For this purpose, a constructive disjunction scheme for approximating
disjunction of interval constraints will be explored. Moreover, disjunctions
will be studied from a data-parallel point of view: how much speedup can be
expected from their parallel processing.
- ●Data-parallelism:
- In the course of any solver's computation, factorization and enumeration
procedures give rise to disjunctive constraints which can in principle all be
explored in parallel. But since the amount of parallelism changes dynamically
and is unknown at compile time, it is not realistic to process all constraints
with the same priority. If a new process is created each for each constraint
of each dynamically-occurring disjunction, the parallel machine's network will
become saturated and speedup will vanish. If on the other hand only a fixed
number of processes are allowed to exist at any given time, then poor
utilization could result from the unequal processing times required by
constraints. The difficult problem of dynamic load-balancing has been studied
for declarative programs in [13] and [10].
In order to maximize parallel speedup, dynamic load-balancing strategies
should be designed and implemented at minimal costs. The study of such
strategies will proceed in three phases. First, the effect of different
solvers on the dynamic amount of available parallelism will be estimated. Then
the dynamic size-distribution between the generated constraints will be
quantified experimentally. Finally, the cost of load-balancing operations will
be expressed as a function of size-distribution and BSP(bulk-synchronous
parallel)machine parameters [8]. As a result, data-parallel algorithms will be
designed and tested to trigger load-balancing through process creation/merging
at a frequency driven by the balance between cost and expected speedup. A
first step in this direction already exists in the form of parallel sorting
methods for load-balancing(applied to database operations in [15]).
- ●Implementation:
- We plan to use the KLIC system developed at ICOT and distributed by AITEC
for the implementation of the concurrent cooperative solvers. KLIC is an
efficient language with powerful synchronization primitives which has been
ported to many different architectures, and it will be used has a "harness
language" to encode the cooperation protocol between the solvers. The solvers
themselves will be written in a low-level language such as C, in order to reuse
prototypes already developed at University of Orleans and INRIA, and therefore
minimize the overall implementation effort. Attention will be given to the
description in KLIC of dynamic strategies for efficient cooperation: how
convergence is affected by relative priorities between solvers, how efficient/
useful is control-parallelism on standard workstation networks, how dynamic
should the strategies be, etc. Data-parallel algorithms will be implemented in
C with either the MPI or the BSPLib libraries, both available freely on a wide
variety of architectures.
(1) Project Organization
|
Name | Affiliation |
Main Invest. | F.Benhamou | Univ.Nantes |
Coop.Res. | Ph.Codognet | INRIA |
Coop.Res. | G.Hains | Univ.Orleans |
Coop.Res. | L.Granvilliers | Univ.Orleans |
(2) Research Method
We will develop in parallel research on
- efficient combinations of cooperative constraint solvers,
- the definition of high level cooperation protocols,
- theoretical and algorithmic study of parallel methods dedicated to the
cooperation scheme and
- the implementation aspects, from the solvers, the cooperation and the
parallelization point of view.
The resulting software will consist in a top level implementation in KLIC
synchronizing C procedures implementing the various subsolvers involved in the
cooperation process.
(1) The name of the software
CCOPS
(2) Functions and features of the software
-
The main purpose of the software is to provide an efficient tool to solve
heterogeneous numerical constraint systems based on the cooperation of
concurrent constraint solvers.
Its main function will be to provide the user with an approximation of the
solution space of a given set of numerical constraints.
This approximation will be expressed as a set of domain values for the
variables occurring in the initial constraint system. Intuitively, such sets
can be viewed as boxes, parallel to the coordinate axis of the hyper-space
corresponding to the constraint input. Facilities will help the user to get
additional informations over the solutions such as:
- computation of an approximate solution (as opposed to the whole solution
space), with arbitrary precision,
- possible proof of existence of actual (theoretical) solutions for a given
box,
- user-defined search strategies and heuristics,
- computation of "good" solutions with respect to optimization criteria.
As it should be clear from this description the actual tool will be very
simple to use, from the user point of view. A text file stating the problem at
hand will be used as input, the output consisting of a series of
mathematically correct information on the solutions of the input constraint
system.
(3) Structure of the software
-
The resulting software will be structured as follows:
- A module for input/output facilities,
- A finite-domain solver based on propagation techniques,
- A non-linear constraint solver based on numerical methods (interval Newton
methods) and propagation,
- A module computing redundant polynomial constraints, based on approximate
Grobner base computations,
- A module of constraint simplifications based on rewriting rules
(substitutions, factorizations, etc.),
- A module controlling the search,
- a top-level module,written in KLIC, synchronizing and coordinating the
execution of the modules above.
The solver will use the KLIC system,used for top level encoding of the
cooperation protocols.
(4) Related IFS programs (if any)
(5) Requered program language/OS/software packages
-
The software will be developed for one part in C and for the other part in
KLIC under UNIX. It should be portable on most UNIX workstations.
(6) Expected size of the software
About 10000 lines of C and about 500-1500 lines of KLIC.
(7) Expected way of use of the software
- How this software will be used, who will be expected users.
The main goal of this project is to develop a tool for efficient constraint
solving over complex heterogeneous constraints.
The expected impact is
- to provide engineers with an efficient, easy to use tool to deal with
complex systems of constraints modelling actual problems in various fields
including physics, chemistry, robotics, economics, etc.
- to provide researchers interested in constraint resolution and
concurrent constraints with the first freely available concurrent (and
parallelizable) constraint solver based on interval constraints (other
commercially available interval contraint based tools/languages include Prolog
IV, Numerica, CLP(BNR)),
- Advantage of the software from users'point of view.
The principal advantages from the user point of view are:
- Correctness. Being based on interval-based numerical computations, the
system will guarantee at any stage that all solutions lie in the computed
approximations,
- Flexibility. The system will allow the user to define and process many
different constraints over various domains (Boolean, integers and reals) in a
uniform way and provide facilities to design user-defined search strategies.
- Efficiency. Carefully designed cooperation of symbolic, numerical and
propagation based methods are expected to substantially improve the constraint
solving efficiency,
- Parallelization. The high-level language used to define cooperation and
synchronization of cooperating constraint solvers and the work on the
parallelization of the cooperation techniques should lead to define a clean
and simple model for parallel implementations of CCOPS.
(8) Documents which will be added to the software
- a user manual of the resulting software, describing the handling of
non-linear real constraints from the user point of view.
- a technical manual describing the implementation of concurrent cooperative
constraint solvers using KLIC.
- a research paper investigating some strategies of cooperation of symbolic
and numeric solvers, and the use of KLIC for modelling such cooperations.
- a research paper describing some parallel implementations of cooperative
solvers of non-linear real constraints.
www-admin@icot.or.jp