Analysis of Or-parallel execution models

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.

[1]  Seif Haridi,et al.  A Formal Model for Or-Parallel Execution of Logic Programs , 1983, IFIP Congress.

[2]  Uzi Vishkin,et al.  On Finding Lowest Common Ancestors: Simplification and Parallelization , 1988, AWOC.

[3]  Andrzej Ciepielewski,et al.  Performance Evaluation of a Storage Model for OR--Parallel Execution of Logic Programs , 1986, SLP.

[4]  Dharma P. Agrawal,et al.  A Randomized Parallel Backtracking Algorithm , 1988, IEEE Trans. Computers.

[5]  David H. D. Warren,et al.  The SRI Model for Or-Parallel Execution of Prolog: Abstract Design and Implementation Issues , 1987, SLP.

[6]  Ken Satoh,et al.  KABU-WAKE: A New Parallel Inference Method and Its Evaluation , 1986, COMPCON.

[7]  Ewing L. Lusk,et al.  Experiments with OR-Parallel Logic Programs , 1987, ICLP.

[8]  Khayri A. M. Ali OR-Parallel Execution of Prolog on BC-Machine , 1988, ICLP/SLP.

[9]  David H. D. Warren,et al.  Or-Parallel Execution Models of Prolog , 1987, TAPSOFT, Vol.2.

[10]  Khayri A. M. Ali,et al.  The Muse Or-Parallel Prolog Model and its Performance , 1990, NACLP.

[11]  Paul Hudak,et al.  Memory coherence in shared virtual memory systems , 1986, PODC '86.

[12]  Gary Lindstrom,et al.  Or-Parallelism on Applicative Architectures , 1984, International Conference on Logic Programming.

[13]  Laxmikant V. Kalé,et al.  Compiled Execution of the Reduce-OR Process Model on Multiprocessors , 1989, NACLP.

[14]  Gopal Gupta Parallel execution of logic programs on shared memory multiprocessors , 1992 .

[15]  Péter Szeredi Performance Analysis of the Aurora Or-Parallel Prolog System , 1989, NACLP.

[16]  Zheng Lin,et al.  Expected Performance of the Randomized Parallel Backtracking Method , 1989, NACLP.

[17]  David Maier,et al.  An Efficient Method for Storing Ancestor Information in Trees , 1979, SIAM J. Comput..

[18]  Peter Borgwardt Parallel Prolog Using Stack Segements on Shared-Memory Multiprocessors , 1984, SLP.

[19]  Philippe Robert,et al.  The PEPSys Model: Combining Backtracking, AND- and OR-Parallelism , 1987, SLP.

[20]  Seif Haridi,et al.  OR-Parallel Prolog Made Efficient on Shared Memory Multiprocessors , 1987, SLP.