MULTILISP: a language for concurrent symbolic computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
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
Warren's abstract machine: a tutorial reconstruction
Warren's abstract machine: a tutorial reconstruction
The Muse Or-parallel Prolog model and its performance
Proceedings of the 1990 North American conference on Logic programming
A methodology for granularity-based control of parallelism in logic programs
Journal of Symbolic Computation - Special issue on parallel symbolic computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Parallel Computing - special issue on parallel computing for irregular applications
Parallel execution of prolog programs: a survey
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficient Management of Backtracking in AND-Parallelism
Proceedings of the Third International Conference on Logic Programming
An Abstract Machine for Restricted AND-Parallel Execution of Logic Programs
Proceedings of the Third International Conference on Logic Programming
&ACE: a high-performance parallel Prolog system
IPPS '95 Proceedings of the 9th International Symposium on Parallel Processing
Optimising Bytecode Emulation for Prolog
PPDP '99 Proceedings of the International Conference PPDP'99 on Principles and Practice of Declarative Programming
Flexible Scheduling for Non-Deterministic, And-parallel Execution of Logic Programs
Euro-Par '96 Proceedings of the Second International Euro-Par Conference on Parallel Processing-Volume II
Executing functional programs on a virtual tree of processors
FPCA '81 Proceedings of the 1981 conference on Functional programming languages and computer architecture
Science of Computer Programming - Special issue: Static analysis symposium (SAS 2003)
High-level languages for small devices: a case study
CASES '06 Proceedings of the 2006 international conference on Compilers, architecture and synthesis for embedded systems
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Combining static analysis and profiling for estimating execution times
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
Relating data-parallelism and (and-) parallelism in logic programs
Computer Languages
Concurrency, Graphs and Models
Annotation Algorithms for Unrestricted Independent And-Parallelism in Logic Programs
Logic-Based Program Synthesis and Transformation
A High-Level Implementation of Non-deterministic, Unrestricted, Independent And-Parallelism
ICLP '08 Proceedings of the 24th International Conference on Logic Programming
Non-strict independence-based program parallelization using sharing and freeness information
Theoretical Computer Science
Hi-index | 0.00 |
Most efficient implementations of parallel logic programming rely on complex low-level machinery which is arguably difficult to implement and modify. We explore an alternative approach aimed at taming that complexity by raising core parts of the implementation to the source language level for the particular case of and-parallelism. We handle a significant portion of the parallel implementation 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. The approach does not eliminate altogether modifications to the abstract machine, but it does greatly simplify them and it also facilitates experimenting with different alternatives. We show how this approach allows implementing both restricted and unrestricted (i.e., non fork-join) parallelism. Preliminary experiments show that the performance sacrificed is reasonable, although granularity control is required in some cases. Also, we observe that the availability of unrestricted parallelism contributes to better observed speedups.