Efficient Backtracking in And-Parallel Implementations of Non-deterministic Languages

We consider the problem of efficiently supporting backtracking in independent and-parallel non-deterministic systems. We consider this problem in the context of logic programming, although the solution proposed is sufficiently general to be applicable to any non-deterministic language or system. Our model employs various optimizations, as well as a novel memory organization scheme in which processors are allowed to traverse each others' stacks to achieve this efficiency. The solution developed has been implemented in the ACE Prolog system. The performance of the system is analyzed on a variety of non-deterministic benchmarks.

[1]  Krzysztof R. Apt,et al.  Search and imperative programming , 1997, POPL '97.

[2]  Manuel V. Hermenegildo,et al.  Divided We Stand: Parallel Distributed Stack Memory Management , 1993, ICLP-Workshops on Implementation of Logic Programming Systems.

[3]  Evan Tick,et al.  The Deevolution of Concurrent Logic Programming Languages , 1995, J. Log. Program..

[4]  Enrico Pontelli,et al.  ACE: And/Or-parallel Copying-based Execution of Logic Programs , 1994, ICLP.

[5]  Vipin Kumar,et al.  AND-Parallel Execution of Logic Programs on a Shared-Memory Multiprocessor , 1988, J. Log. Program..

[6]  Alvin M. Despain,et al.  Semi-Intelligent Backtracking of Prolog Based on Static Data Dependency Analysis , 1985, SLP.

[7]  Nancy Martin,et al.  Programming Expert Systems in OPS5 - An Introduction to Rule-Based Programming(1) , 1985, Int. CMG Conference.

[8]  Ehud Shapiro,et al.  Concurrent PROLOG: Collected Papers , 1987 .

[9]  Saumya K. Debray,et al.  Non-Failure Analysis for Logic Programs , 1997, ICLP.

[10]  Alvin M. Despain,et al.  An Empirical Study of the Warren Abstract Machine , 1987, SLP.

[11]  Manuel V. Hermenegildo,et al.  Effectiveness of Global Analysis in Strict Independence-Based Automatic Parallelization , 1994, ILPS.

[12]  Kish Shen Improving the Execution of Dependent And-Parallel Prolog DDAS , 1994, PARLE.

[13]  Andy King,et al.  Depth-k Sharing and Freeness , 1994, ICLP.

[14]  Manuel V. Hermenegildo,et al.  &-Prolog and its Performance: Exploiting Independent And-Parallelism , 1990, ICLP.

[15]  Gopal Gupta Parallel execution of logic programs on shared memory multiprocessors , 1992 .

[16]  Enrico Pontelli,et al.  Automatic Compile-time Parallelization of Prolog Programs for Dependent And-Parallelism , 1997, ICLP.

[17]  Kish Shen Initial Results of the Parallel Implementation of DASWAM , 1996, JICSLP.

[18]  Manuel V. Hermenegildo,et al.  Efficient Management of Backtracking in AND-Parallelism , 1986, ICLP.

[19]  Barbara M. Chapman,et al.  Supercompilers for parallel and vector computers , 1990, ACM Press frontier series.

[20]  Jan Maluszynski,et al.  AND-Parallelism with Intelligent Backtracking for Annotated Logic Programs , 1985, SLP.

[21]  Manuel Eduardo Correia,et al.  The SBA: Exploiting Orthogonality in AND-OR Parallel Systems , 1997, ILPS.

[22]  Enrico Pontelli,et al.  Optimization Schemas for Parallel Implementation of Nondeterministic Languages and Systems , 1997, IPPS.

[23]  John S. Conery,et al.  The and/or process model for parallel interpretation of logic programs , 1983 .

[24]  Dana S. Scott,et al.  Concurrent constraint programming languages , 1989 .

[25]  Enrico Pontelli,et al.  &ACE: a high-performance parallel Prolog system , 1995, IPPS.

[26]  Enrico Pontelli,et al.  Implementation Mechanisms for Dependent And-Parallelism , 1997, ICLP.