PALS: Efficient Or-Parallel execution of Prolog on Beowulf clusters

This paper describes the development of the PALS system, an implementation of Prolog capable of efficiently exploiting or-parallelism on distributed-memory platforms—specifically Beowulf clusters. PALS makes use of a novel technique, called incremental stack-splitting. The technique proposed builds on the stack-splitting approach, previously described by the authors and experimentally validated on shared-memory systems, which in turn is an evolution of the stack-copying method used in a variety of parallel logic and constraint systems—e.g., MUSE, YAP, and Penny. The PALS system is the first distributed or-parallel implementation of Prolog based on the stack-splitting method ever realized. The results presented confirm the superiority of this method as a simple yet effective technique to transition from shared-memory to distributed-memory systems. PALS extends stack-splitting by combining it with incremental copying; the paper provides a description of the implementation of PALS, including details of how distributed scheduling is handled. We also investigate methodologies to effectively support order-sensitive predicates (e.g., side-effects) in the context of the stack-splitting scheme. Experimental results obtained from running PALS on both Shared Memory and Beowulf systems are presented and analyzed.

[1]  Enrico Pontelli,et al.  Construction and Optimization of a Parallel Engine for Answer Set Programming , 2001, PADL.

[2]  David H. D. Warren,et al.  Scheduling Speculative Work in Or-Parallel Prolog Systems , 1993, ICLP.

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

[4]  Karen Villaverde,et al.  PALS: An Or-Parallel Implementation of Prolog on Beowulf Architectures , 2001, ICLP.

[5]  Desh Ranjan,et al.  Data structures for order-sensitive predicates in parallel nondeterministic systems , 2000, Acta Informatica.

[6]  Manuel Eduardo Correia,et al.  DAOS - Scalable And-Or Parallelism , 1999, Euro-Par.

[7]  Karen Villaverde,et al.  An efficient methodology to exploit or-parallelism on distributed memory systems , 2002 .

[8]  V HermenegildoManuel,et al.  Parallel execution of prolog programs , 2001 .

[9]  Ricardo Rocha,et al.  YapOr: an Or-Parallel Prolog System Based on Environment Copying , 1999, EPIA.

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

[11]  Robert A. Kowalski,et al.  Logic for problem solving , 1982, The computer science library : Artificial intelligence series.

[12]  W. F. Clocksin,et al.  A method for efficiently executing horn clause programs using multiple processors , 2009, New Generation Computing.

[13]  Khayri A. M. Ali OR-Parallel Execution of Prolog on BC-Machine , 1988, ICLP/SLP.

[14]  Enrico Pontelli,et al.  Non-monotonic Reasoning on Beowulf Platforms , 2003, PADL.

[15]  Khayri A. M. Ali,et al.  An And/Or-Parallel implementation of AKL , 1995, New Generation Computing.

[16]  John S. Conery,et al.  Binding environments for parallel logic programs in non-shared memory multiprocessors , 1988, International Journal of Parallel Programming.

[17]  Pedro Barahona,et al.  PSICO: Solving Protein Structures with Constraint Programming and Optimization , 2002, Constraints.

[18]  Lourdes Araujo,et al.  A Parallel Prolog System for Distributed Memory , 1997, J. Log. Program..

[19]  Desh Ranjan,et al.  On the complexity of or-parallelism , 2009, New Generation Computing.

[20]  Péter Szeredi Using Dynamic Predicates in an Or--Parallel Prolog System , 1991, ISLP.

[21]  Christian Schulte,et al.  Parallel Search Made Simple , 2000 .

[22]  Seif Haridi,et al.  Data Diffusion Machine - A Scalable Shared Virtual Memory Multiprocessor , 1988, FGCS.

[23]  Gopal Gupta,et al.  Analysis of Or-parallel execution models , 1993, TOPL.

[24]  Enrico Pontelli,et al.  Stack-splitting: Or-/And-parallelism on Distributed Memory Machines , 1999, ICLP.

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

[26]  Dennis F. Kibler,et al.  Parallel interpretation of logic programs , 1981, FPCA '81.

[27]  Mats Carlsson,et al.  Parallel execution of prolog programs: a survey , 2001, TOPL.

[28]  Michael J. Wise,et al.  Implementations of distributed Prolog , 1992 .

[29]  Vipin Kumar,et al.  Parallel depth first search. Part I. Implementation , 1987, International Journal of Parallel Programming.

[30]  J. Montelius,et al.  An and/or-parallel implementatin of AKL , 1996 .

[31]  Khayri A. M. Ali,et al.  The muse approach to Or-parallel prolog , 1990, International Journal of Parallel Programming.

[32]  Christian Schulte Comparing Trailing and Copying for Constraint Programming , 1999, ICLP.

[33]  Paul Watson,et al.  Or-Parallel Prolog on a Distributed Memory Architecture , 2000, J. Log. Program..

[34]  Enrico Pontelli,et al.  Last alternative optimization , 1996, SPDP.

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

[36]  Gopal Gupta Multiprocessor Execution of Logic Programs , 1994, Springer US.

[37]  Karsten Schmidt,et al.  How to calculate symmetries of Petri nets , 2000 .

[38]  Jacques Chassin de Kergommeaux,et al.  Parallel logic programming systems , 1994, CSUR.

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

[40]  Michael Wolfe,et al.  High performance compilers for parallel computing , 1995 .

[41]  Abraham Silberschatz,et al.  Distributed processing of logic programs , 1988, SIGMOD '88.

[42]  Laurent Perron Search Procedures and Parallelism in Constraint Programming , 1999, CP.

[43]  G. Antoniou Stable Model Semantics of Logic Programs , 1997 .

[44]  Hassan Aït-Kaci,et al.  Warren's Abstract Machine: A Tutorial Reconstruction , 1991 .

[45]  Seif Haridi,et al.  The Aurora or-parallel Prolog system , 1990, New Generation Computing.

[46]  Karen Villaverde,et al.  Incremental stack-splitting mechanisms for efficient parallel implementation of search-based AI systems , 2001, International Conference on Parallel Processing, 2001..

[47]  Abraham Silberschatz,et al.  A framework for the parallel processing of Datalog queries , 1990, SIGMOD '90.

[48]  Krzysztof R. Apt,et al.  From logic programming to Prolog , 1996, Prentice Hall International series in computer science.

[49]  Jayadev Misra,et al.  Detecting termination of distributed computations using markers , 1983, PODC '83.

[50]  Karen Villaverde,et al.  A Methodology for Order-Sensitive Execution of Non-deterministic Languages on Beowulf Platforms , 2003, Euro-Par.

[51]  T. Moto-Oka,et al.  Fifth Generation Computer Systems , 1982 .

[52]  Ricardo Rocha,et al.  YapDss: An Or-Parallel Prolog System for Scalable Beowulf Clusters , 2003, EPIA.

[53]  Victor W. Marek,et al.  Computing stable models in parallel , 2001, Answer Set Programming.

[54]  Enrico Pontelli,et al.  Issues in parallel execution of non-monotonic reasoning systems , 2005, Parallel Comput..

[55]  John Wylie Lloyd,et al.  Foundations of Logic Programming , 1987, Symbolic Computation.

[56]  José M. Troya,et al.  An OR Parallel Prolog Model for Distributed Memory Systems , 1993, PLILP.

[57]  Sartaj Sahni,et al.  Anomalies in Parallel Branch-and-Bound Algorithms , 1984 .

[58]  Lourdes Araujo,et al.  Towards Full Prolog on a Distributed Architecture , 1997, Euro-Par.

[59]  Desh Ranjan,et al.  An optimal data structure to handle dynamic environments in non-deterministic computations , 2002, Comput. Lang. Syst. Struct..