Andorra I: a parallel Prolog system that transparently exploits both And-and or-parallelism

Andorra-I is an experimental parallel Prolog system that transparently exploits both dependent and-parallelism and or-parallelism. It constitutes the first implementation of the Basic Andorra model, a parallel execution model for logic programs in which determinate goals are executed before other goals. This model, besides combining two of the most important forms of implicit parallelism in logic programs, also provides a form of implicit coroutining. This means that Andorra-I not only supports standard Prolog but also provides the capabilities of flat committed-choice languages such as Parlog and GHC. We give an overview of the main problems in the implementation of Andorra-I: the design of its engine and of the preprocessor that generates code to recognise determinate goals. We then present performance data for our implementation. This data shows that Andorra-I, an interpreter, has a single-processor performance similar to the comparable sequential system, C-Prolog, while on multiple processors Andorra-I is able to obtain good *This work was supported by ESPRtTproject 2471 (“PEPMA”). Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. 01991 ACM 0-89791-390-6191 /000410083 . ..$1 .50 speedups fmm both and-parallelism and or-parallelism. In suitable cases, the speedup obtained from exploiting both forms of parallelism combined is better than that obtainable from exploiting either kind alone.

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

[2]  David Warren,et al.  Warplan: a system for generating plans , 1974 .

[3]  James Alexander Crammond,et al.  Implementation of committed choice logic languages on shared memory multiprocessors , 1988 .

[4]  Mats Carlsson,et al.  The Engine-Scheduler interface in the Aurora Or-Parallel Prolog system , 1990 .

[5]  Richard P. Gabriel,et al.  Performance and evaluation of Lisp systems , 1985 .

[6]  Seif Haridi,et al.  ANDORRA Prolog - An Integration of Prolog and Committed Choice Languages , 1988, FGCS.

[7]  Bart Demoen,et al.  Improving the Execution Speed of Compiled Prolog with Modes, Clause Selection, and Determinism , 1987, TAPSOFT, Vol.2.

[8]  Pascal Van Hentenryck Constraint satisfaction in logic programming , 1989, Logic programming.

[9]  Seif Haridi,et al.  Kernel Andorra Prolog and its Computation Model , 1990, ICLP.

[10]  Rong Yang Solving Simple Substitution Ciphers in Andorra-I , 1989, ICLP.

[11]  Ehud Shapiro,et al.  A Decision Tree Compilation Algorithm for FCP(!, : , ?) , 1988, ICLP/SLP.

[12]  古川 康一 Logic programming : Proceedings of the eighth International Conference , 1991 .

[13]  Reem Bahgat,et al.  Pandora: Non-deterministic Parallel Logic Programming , 1989, ICLP.

[14]  Leon Sterling,et al.  The Art of Prolog , 1987, IEEE Expert.

[15]  Laxmikant V. Kalé,et al.  A Memory Organization Independent Binding Environment for AND and OR Parallel Execution of Logic Programs , 1988, ICLP/SLP.

[16]  D. Hofstadter,et al.  Godel, Escher, Bach: An Eternal Golden Braid , 1979 .