PALS: Efficient Or-Parallelism 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]  Khayri A. M. Ali,et al.  The muse approach to Or-parallel prolog , 1990, International Journal of Parallel Programming.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[32]  Raéd Yousef Sindaha The Dharma scheduler-definitive scheduling in Aurora on multiprocessors architecture , 1992, [1992] Proceedings of the Fourth IEEE Symposium on Parallel and Distributed Processing.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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