The family of concurrent logic programming languages
ACM Computing Surveys (CSUR)
The muse approach to Or-parallel Prolog
International Journal of Parallel Programming
Flexible scheduling of or-parallelism is Aurora: the Bristol scheduler
PARLE '91 Proceedings on Parallel architectures and languages Europe : volume II: parallel languages: volume II: parallel languages
Full Prolog and scheduling or-parallelism in muse
International Journal of Parallel Programming
Scheduling speculative work in Or-parallel Prolog systems
ICLP'93 Proceedings of the tenth international conference on logic programming on Logic programming
Branch-level scheduling in Aurora: the Dharma scheduler
ILPS '93 Proceedings of the 1993 international symposium on Logic programming
Tabled evaluation with delaying for general logic programs
Journal of the ACM (JACM)
Hoard: a scalable memory allocator for multithreaded applications
ASPLOS IX Proceedings of the ninth international conference on Architectural support for programming languages and operating systems
Parallel execution of prolog programs: a survey
ACM Transactions on Programming Languages and Systems (TOPLAS)
Introduction to Algorithms
Theoretical Computer Science
YapOr: an Or-Parallel Prolog System Based on Environment Copying
EPIA '99 Proceedings of the 9th Portuguese Conference on Artificial Intelligence: Progress in Artificial Intelligence
OLD Resolution with Tabulation
Proceedings of the Third International Conference on Logic Programming
Biclustering Algorithms for Biological Data Analysis: A Survey
IEEE/ACM Transactions on Computational Biology and Bioinformatics (TCBB)
An improved continuation call-based implementation of tabling
PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
High-level multi-threading programming in logtalk
PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
Threads and or-parallelism unified
Theory and Practice of Logic Programming
Hi-index | 0.00 |
This paper presents the logic programming concept of thread-based competitive or-parallelism , which combines the original idea of competitive or-parallelism with committed-choice nondeterminism and speculative threading. In thread-based competitive or-parallelism, an explicit disjunction of subgoals is interpreted as a set of concurrent alternatives, each running in its own thread. The individual subgoals usually correspond to predicates implementing different procedures that, depending on the problem specifics, are expected to either fail or succeed with different performance levels. The subgoals compete for providing an answer and the first successful subgoal leads to the termination of the remaining ones. We discuss the implementation of thread-based competitive or-parallelism in the context of Logtalk, an object-oriented logic programming language, and present experimental results.