Parallel execution of prolog programs: a survey

@article{Gupta2001ParallelEO,
  title={Parallel execution of prolog programs: a survey},
  author={G. Gupta and Enrico Pontelli and K. M. A. Ali and M. Carlsson and M. 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… Expand
Or-Parallel Prolog Execution on Clusters of Multicores
TLDR
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 is proposed. Expand
An Or-Parallel Prolog Execution Model for Clusters of Multicores
Logic Programming languages, such as Prolog, offer a great potential for the exploitation of implicit parallelism. One of the most distinguishable sources of implicit parallelism in Prolog programsExpand
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. Expand
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. Expand
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. Expand
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. Expand
An investigation in parallel execution of answer set programs on distributed memory platforms: Task sharing and dynamic scheduling
TLDR
The paper places emphasis on addressing the problem of the irregular structure of the search trees generated by typical ASP computations (in a Smodels-like computation), which requires the use of dynamic load balancing mechanisms. Expand
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. Expand
Program Analysis to Support Concurrent Programming in Declarative Languages
TLDR
This work focuses primarily on developing static analysis techniques for detecting race conditions at the application level in Mercury and Prolog programs and derives (semi-) automatically the location and the granularity of the critical sections using a data-centric approach. Expand
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. Expand
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 479 REFERENCES
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. Expand
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. Expand
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. Expand
An Abstract Machine for Restricted AND-Parallel Execution of Logic Programs
TLDR
This paper presents a parallel abstract machine which is an extension of the WAM and is thus capable of supporting AND-Parallelism without giving up the optimizations present in sequential implementations. Expand
Parallelizing irregular and pointer-based computations automatically: Perspectives from logic and constraint programming
TLDR
Some of the problems faced by parallelizing compilers for logic and constraint programs are introduced in a tutorial way and some of the significant progress made in the area are provided. Expand
ACE: And/Or-parallel Copying-based Execution of Logic Programs
TLDR
This paper presents a novel execution model for parallel implementation of logic programs which is capable of exploiting both independent and-parallelism and or-par parallelism in an efficient way and which combines the stack copying approach in the implementation of or- parallelism with proven techniques in the Implementation ofIndependent and-Parallelism, such as those used in &-Prolog. Expand
Shared Paged Binding Array: A Universal Datastructure for Parallel Logic Programming
TLDR
A datastructure called the Shared Paged Binding Array is presented 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 such as the Extended Andorra Model and the AndOrra Kernel Language. Expand
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. Expand
Analysis of Or-parallel execution models
TLDR
It is proved that all three criteria cannot be simultaneously satisfied by any or-parallel execution model based on a finite number of processors but unbounded memory. Expand
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. Expand
...
1
2
3
4
5
...