Parallel execution of prolog programs: a survey
@article{Gupta2001ParallelEO, title={Parallel execution of prolog programs: a survey}, author={Gopal Gupta and Enrico Pontelli and Khayri A. M. Ali and Mats Carlsson and Manuel V. Hermenegildo}, journal={ACM Trans. Program. Lang. Syst.}, year={2001}, volume={23}, pages={472-602} }
Since the early days of logic programming, researchers in the field realized the potential for exploitation of parallelism present in the execution of logic programs. Their high-level nature, the presence of nondeterminism, and their referential transparency, among other characteristics, make logic programs interesting candidates for obtaining speedups through parallel execution. At the same time, the fact that the typical applications of logic programming frequently involve irregular…Â
Figures and Tables from this paper
191 Citations
An Or-Parallel Prolog Execution Model for Clusters of Multicores
- Computer Science
- 2013
This work proposes a novel computational model to efficiently exploit implicit parallelism from large scale real-world applications specialized for the novel architectures based on clusters of multicores.
Automatic unrestricted independent and-parallelism in declarative multiparadigm languages
- Computer Science
- 2008
Different alternatives for performing automatic goal-level, unrestricted independent and-parallelization of logic programs through source-to-source transformations are studied in this work, which use as targets new parallel execution primitives which are simpler and more flexible than the well-known fork-join parallel operator.
On applying or-parallelism and tabling to logic programs
- Computer ScienceTheory and Practice of Logic Programming
- 2005
OPTYap is the first implementation of a parallel tabling engine for logic programming systems and demonstrates that implicit or-parallelism is a natural fit for logic programs with tabling, and emphasizes the belief that through applying or-Parallelism and tabling to logic programs the range of applications can be increased.
A simple and efficient explicit parallelization of logic programs using low-level threading primitives
- Computer ScienceArXiv
- 2009
The implementation of the parent-children shared answer-tables surpasses in efficiency all the other data-structures currently implemented for completion of answers in parallelization using multi-threading.
A High-Level Implementation of Non-deterministic, Unrestricted, Independent And-Parallelism
- Computer ScienceICLP
- 2008
This paper presents an implementation model for independent and-parallelism which fully supports non-determinism through backtracking and provides flexible solutions for some of the main problems found in previous and- parallel implementations.
A team-based scheduling model for interfacing or-parallel prolog engines
- Computer ScienceComput. Sci. Inf. Syst.
- 2014
A layered approach where a second-level scheduler specifies a clean interface for scheduling work between the base or-parallel engines, thus enabling different scheduling combinations to be used for distributing work among workers inside a team and among teams.
Towards a high-level implementation of flexible parallelism primitives for symbolic languages
- Computer SciencePASCO '07
- 2007
A logic-based multiparadigm language, Ciao, which is based on a logic-programming kernel and a flexible mechanism whereby multiple extensions are built supporting Prolog, functional programming, constraint programming, and other system and user-level languages is used.
Automatic unrestricted independent and-parallelism in logic programs
- Computer Science
- 2003
New algorithms which perform automatic parallelization via source-to-source transformations using new parallel execution primitives which are simpler and more flexible than the well-known &/2 parallel operator, which makes it possible to generate better parallel expressions by exposing more potential parallelism among the literals of a clause than is possible with&/2.
PALS: Efficient Or-Parallel execution of Prolog on Beowulf clusters
- Computer ScienceTheory and Practice of Logic Programming
- 2007
The PALS system is the first distributed or-parallel implementation of Prolog based on the stack-splitting method ever realized, and the results presented confirm the superiority of this method as a simple yet effective technique to transition from shared-memory to distributed-memory systems.
Towards high-level execution primitives for and-parallelism: preliminary results
- Computer Science
- 2007
This work handles a signiflcant portion of the parallel implementation mechanism at the Prolog level with the help of a comparatively small number of concurrency-related primitives which take care of lower-level tasks such as locking, thread management, stack set management, etc.
References
SHOWING 1-10 OF 474 REFERENCES
Parallel logic programming systems
- Computer ScienceCSUR
- 1994
This article concentrates mainly on transparent exploitation of parallelism and surveys the most mature solutions to the problems to be solved in order to obtain efficient implementations and addresses current and prospective research issues in extending the applicability and the efficiency of existing systems.
Parallel Logic Programming for Numeric Applications
- Computer ScienceICLP
- 1986
A series of experiments involving the use of various dialects of parallel logic programming to express and control parallelism to explore the possibility of writing numeric code for multiprocessors while expressing the synchronization requirements using logic programming.
Execution models of Prolog for parallel computers
- Computer Science
- 1990
The author defines a parallel computational paradigm that can be used to create a Parallel Prolog Abstract Machine as a general starting point for implementing logic programming languages on parallel computers, and defines an efficient parallel logic machine to exploit the different types of parallelism of these programs.
Parallelizing irregular and pointer-based computations automatically: Perspectives from logic and constraint programming
- Computer ScienceParallel Comput.
- 2000
Designing a high performance parallel logic programming system
- Computer ScienceCARN
- 1987
The research presented herein is geared towards providing additional performance to logic programs through the use of parallelism, while preserving the conventional semantics of logic languages.
Multiprocessor Execution of Logic Programs
- Computer ScienceSpringer US
- 1994
Multiprocessor Execution of Logic Programs will be useful for people implementing parallel logic programming systems, parallel symbolic systems Parallel AI systems, and parallel theorem proving systems and will also be useful to people who wish to learn about implementation of parallel logic Programming systems.
Novel Models for Or-Parallel Logic Programs: A Performance Analysis
- Computer ScienceEuro-Par
- 2000
This paper based its work on YapOr, an or-parallel copying system using the YAP Prolog engine, so that the three alternative systems share schedulers and the underlying engine.
Shared Paged Binding Array: A Universal Datastructure for Parallel Logic Programming
- Computer Science
- 1995
This paper presents a datastructure called the Shared Paged Binding Array that arguably is most suited for implementing any arbitrary parallel logic programming system, and can be used for and-or parallel execution of Committed Choice Languages with Deep Guards as well as for realizing the implementations of more advanced models of parallel execution.
Automatic Compile-Time Parallelization of Logic Programs for Restricted, Goal Level, Independent and Parallelism
- Computer ScienceJ. Log. Program.
- 1999
A High Performance OR-parallel Prolog System
- Computer Science
- 1992
A layered approach for building a simple and eecient OR-parallel Prolog system by extending any sequential Prolog implementation based on the WAM has been designed and implemented.