Hostname: page-component-7b7567c8c-kwt9d Total loading time: 0 Render date: 2026-11-12T17:19:04.485Z Has data issue: false hasContentIssue false

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

Published online by Cambridge University Press:  01 November 2007

ENRICO PONTELLI
Affiliation:
Department of Computer Science, New Mexico State University, NM, USA (e-mail: epontell@cs.nmsu.edu, kvillave@cs.nmsu.edu)
KAREN VILLAVERDE
Affiliation:
Department of Computer Science, New Mexico State University, NM, USA (e-mail: epontell@cs.nmsu.edu, kvillave@cs.nmsu.edu)
HAI-FENG GUO
Affiliation:
Department of Computer Science, University of Nebraska at Omaha, NE, USA (e-mail: haifengguo@mail.unomaha.edu)
GOPAL GUPTA
Affiliation:
Department of Computer Science, University of Texas at Dallas, Richardson, TX, USA (e-mail: gupta@utdallas.edu)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

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.

Information

Type
Regular Papers
Copyright
Copyright © Cambridge University Press 2007