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… 
An Or-Parallel Prolog Execution Model for Clusters of Multicores
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
Designing a high performance parallel logic programming system
TLDR
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
TLDR
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
TLDR
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
TLDR
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.
A High Performance OR-parallel Prolog System
TLDR
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.
...
...