Analysis of Or-parallel execution models
- 1 September 1993
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 15 (4) , 659-680
- https://doi.org/10.1145/155183.155220
Abstract
We discuss fundamental limitations of or-parallel execution models of nondeterministic programming languages. Or-parallelism corresponds to the execution of different nondeterministic computational paths in parallel. A natural way to represent the state of (parallel) execution of a nondeterministic program is by means of an or-parallel tree. We identify three important criteria that underlie the design of or-parallel implementations based on the or-parallel tree: constant-time access to variables, constant-time task creation, and constant-time task switching, where the term constant-time means that the time for these operations is independent of the number of nodes in the or-parallel tree, as well as the size of each node. We prove that all three criteria cannot be simultaneously satisfied by any or-parallel execution model based on a finite number of processors but unbounded memory. We discuss in detail the application of our result to the class of logic programming languages and show how our result can serve as a useful way to categorize the various or-parallel methods proposed in this field. We also discuss the suitability of different or-parallel implemenation strategies for different parallel architectures.Keywords
This publication has 8 references indexed in Scilit:
- The &-Prolog system: Exploiting independent and-parallelismNew Generation Computing, 1991
- The Aurora or-parallel Prolog systemNew Generation Computing, 1990
- Memory coherence in shared virtual memory systemsACM Transactions on Computer Systems, 1989
- On Finding Lowest Common Ancestors: Simplification and ParallelizationSIAM Journal on Computing, 1988
- A method for efficiently executing horn clause programs using multiple processorsNew Generation Computing, 1988
- Performance of an OR-parallel logic programming systemInternational Journal of Parallel Programming, 1988
- A randomized parallel backtracking algorithmIEEE Transactions on Computers, 1988
- An Efficient Method for Storing Ancestor Information in TreesSIAM Journal on Computing, 1979