Cuts and Side-Effects in And-Or Parallel Prolog

Abstract Practical Prolog programs usually contain extra-logical features like cuts, side-effects, and database manipulating predicates. In order to exploit implicit parallelism from real applications while preserving sequential Prolog semantics, a parallel logic programming system should necessarily support these features. In this paper we show how Prolog's extra-logical features can be supported in an and-or parallel logic programming system. We show that to support extra-logical features an and-or parallel logic programming system should recompute the solutions to independent goals instead of sharing them. We describe an abstraction called the composition tree for representing and-or parallel execution with recomputation. We introduce the notion of “focal-leftmostness” in the composition tree and use it for deriving complete and efficient methods for supporting extra-logical predicates in and-or parallel logic programming systems based on the composition tree abstraction.

[1]  Ehud Shapiro,et al.  Third International Conference on Logic Programming , 1986 .

[2]  Gopal Gupta,et al.  And-Or Parallelism in Full Prolog with Paged Binding Arrays , 1992, PARLE.

[3]  Rong Yang,et al.  Andorra I: a parallel Prolog system that transparently exploits both And-and or-parallelism , 1991, PPOPP '91.

[4]  Michael F. P. O'Boyle,et al.  A New Program Transformation to Minimise Communication in Distributed Memory Architecture , 1992, PARLE.

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

[6]  Manuel V. Hermenegildo,et al.  Combined Determination of Sharing and Freeness of Program Variables through Abstract Interpretation , 1991, ICLP.

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

[8]  Gopal Gupta,et al.  And-Or Parallelism on Shared-Memory Multiprocessors , 1993, J. Log. Program..

[9]  Laxmikant V. Kalé,et al.  Compiled Execution of the Reduce-OR Process Model on Multiprocessors , 1989, NACLP.

[10]  Khayri A. M. Ali A Method for Implementing Cut in Parallel Execution of Prolog , 1987, SLP.

[11]  Pascal Van Hentenryck ACE: And/Or-parallel Copying-based Execution of Logic Programs , 1994 .

[12]  Doug DeGroot Restricted And-Parallelism and Side Effects , 1987, SLP.

[13]  Philippe Robert,et al.  The Parallel ECRC Prolog System PEPSys: An Overview and Evaluation Results , 1988, FGCS.

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

[15]  Andrzej Ciepielewski,et al.  Cut and Side-Effects in Or-Parallel Prolog , 1988, FGCS.

[16]  Manuel V. Hermenegildo,et al.  An Abstract Machine for Restricted AND-Parallel Execution of Logic Programs , 1986, ICLP.

[17]  Giancarlo Succi,et al.  Implementations of Logic Programming Systems , 2012, Springer US.

[18]  Khayri A. M. Ali,et al.  The Muse Or-Parallel Prolog Model and its Performance , 1990, NACLP.

[19]  David H. D. Warren,et al.  The SRI Model for Or-Parallel Execution of Prolog: Abstract Design and Implementation Issues , 1987, SLP.

[20]  Manuel V. Hermenegildo,et al.  A simulation study of or- and independent and-parallelism , 1991 .

[21]  David H. D. Warren,et al.  Flexible scheduling of or-parallelism is Aurora: the Bristol scheduler , 1991 .

[22]  Rong Yang,et al.  The Andorra-I Preprocessor: Supporting Full Prolog on the Basic Andorra Model , 1991, ICLP.

[23]  Si-En Chang,et al.  Restricted AND-Parallelism Execution Model with Side-Effects , 1989, NACLP.