Logic for problem-solving
Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
Distributed processing of logic programs
SIGMOD '88 Proceedings of the 1988 ACM SIGMOD international conference on Management of data
A method for efficiently executing Horn clause programs using multiple processors
New Generation Computing
The Aurora or-parallel Prolog system
New Generation Computing - Selected papers on parallel logic programming from the International Conference on Fifth Generation Computer Systems, 1988
Supercompilers for parallel and vector computers
Supercompilers for parallel and vector computers
Automata-driven indexing of Prolog clauses
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A framework for the parallel processing of Datalog queries
SIGMOD '90 Proceedings of the 1990 ACM SIGMOD international conference on Management of data
The muse approach to Or-parallel Prolog
International Journal of Parallel Programming
Parallel algorithms for machine intelligence and vision
Parallel algorithms for machine intelligence and vision
Warren's abstract machine: a tutorial reconstruction
Warren's abstract machine: a tutorial reconstruction
Analysis of Or-parallel execution models
ACM Transactions on Programming Languages and Systems (TOPLAS)
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
Massively parallel artificial intelligence
Massively parallel artificial intelligence
Strategies for scheduling and- and or- work in parallel logic programming systems
ILPS '94 Proceedings of the 1994 International Symposium on Logic programming
SIMPLE: a methodology for programming high performance algorithms on clusters of symmetric multiprocessors (SMPs)
On the complexity of or-parallelism
New Generation Computing
Stack-splitting: or-/and-parallelism on distributed memory machines
Proceedings of the 1999 international conference on Logic programming
Anomalies in parallel branch-and-bound algorithms
Communications of the ACM
Parallel execution of prolog programs: a survey
ACM Transactions on Programming Languages and Systems (TOPLAS)
Multiprocessor Execution of Logic Programs
Multiprocessor Execution of Logic Programs
ICPP '02 Proceedings of the 2001 International Conference on Parallel Processing
Optimization Schemas for Parallel Implementation of Nondeterministic Languages and Systems
IPPS '97 Proceedings of the 11th International Symposium on Parallel Processing
Answer Set Planning (Abstract)
LPNMR '99 Proceedings of the 5th International Conference on Logic Programming and Nonmonotonic Reasoning
Smodels - An Implementation of the Stable Model and Well-Founded Semantics for Normal LP
LPNMR '97 Proceedings of the 4th International Conference on Logic Programming and Nonmonotonic Reasoning
An OR Parallel Prolog Model for Distributed Memory Systems
PLILP '93 Proceedings of the 5th International Symposium on Programming Language Implementation and Logic Programming
Flexible Scheduling of OR-Parallel Logic Programming Systems
PARLE '91 Proceedings of Parallel Architectures and Languages - Volume II
DAOS - Scalable And-Or Parallelism
Euro-Par '99 Proceedings of the 5th International Euro-Par Conference on Parallel Processing
Implementation of multilisp: Lisp on a multiprocessor
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
SPDP '96 Proceedings of the 8th IEEE Symposium on Parallel and Distributed Processing (SPDP '96)
SimICS/sun4m: a virtual workstation
ATEC '98 Proceedings of the annual conference on USENIX Annual Technical Conference
Threads and or-parallelism unified
Theory and Practice of Logic Programming
Or-parallel prolog execution on multicores based on stack splitting
DAMP '12 Proceedings of the 7th workshop on Declarative aspects and applications of multicore programming
Hi-index | 0.00 |
We study the problem of exploiting parallelism from search-based AI systems on share-nothing platforms, i.e., platforms where different machines do not have access to any form of shared memory. We propose a novel environment representation technique, called stack-splitting, which is a modification of the well-known stack-copying technique, that enables the efficient exploitation of or-parallelism from AI systems on distributed-memory machines. Stack-splitting, coupled with appropriate scheduling strategies, leads to reduced communication during distributed execution and effective distribution of larger grain-sized work to processors. The novel technique can also be implemented on shared-memory machines and it is quite competitive. In this paper we present a distributed implementation of or-parallelism based on stack-splitting including results. Our results suggest that stack-splitting is an effective technique for obtaining high performance parallel AI systems on shared-memory as well as distributed-memory multiprocessors.