Abstract
Based on extending the sequential execution model of Prolog to include parallel execution, we present a method for OR-parallel execution of Prolog on a multiprocessor system. The method reduces the overhead incurred by parallel processing. It allows many processing elements (PEs) to process simultaneously a common branch of a search tree, and each of these PEs creates its local environment and selects a subtree for processing without communication. The run-time overhead is small: simple and efficient operations for selecting the proper subtree. Communication is necessary only when some PEs have exhausted their search spaces and there are others still searching for solutions. The method is able to utilize most of the technology devised for sequential implementation of Prolog. It is optimized for an architecture that supports broadcast copying.
Similar content being viewed by others
References
J. S. Conery and D. F. Kibler, Parallel Interpretation of Logic Programs, inProc. of the ACM Conf. on Functional Programming Languages and Computer Architecture, pp. 163–170 (October 1981).
H. Yasuhara and K. Nitadori, ORBIT: A Parallel Computing Model of Prolog,New Generation Computing 2:277–288 (1984).
Y. Sohma, K. Satoh, K. Kumon, H. Masuzawa, and A. Itashiki, A New Parallel Inference Mechanism Based on Sequential Processing,Proc. of Working Conf. Fifth Generation Computer Architecture, Manchester (July 1985).
A. Ciepielewski and S. Haridi, A Formal Model for OR-Parallel execution of Logic Programs, inProc. Inform. Processing 83, pp. 299–305 (1983).
P. Borgwardt, Parallel Prolog Using Stack Segments on Shared-Memory Muliprocessors, inProc. Intl. Symp. Logic Programming, pp. 2–11 (February 1984).
G. Lindstrom, Or-Parallelism on Applicative Architectures, inProc. Second Intl. Logic Programming Conf., pp. 159–170 (July 1984).
J. Crammond, A Comparative Study of Unification Algorithms for OR-Parallel Execution of Logic Programs,IEEE Trans. on Computers C-34(10):911–917 October 1985).
K. A. M. Ali, Pool Machine: A Multiprocessor Architecture for OR-Parallel Execution of Logic Programs, Rep. TRITA-CS-8603, The Royal Institute of Technology, Stockholm (October 1985).
K. A. M. Ali, Architectures for OR-Parallel Execution of Prolog,SICS, Working Paper (July 1986).
D. H. D. Warren, An Abstract Prolog Instruction Set, Technical Note 309, SRI International, Menlo Park, California (October 1983).
L. E. Fahlén, The BC-Machine Prototype, Architecture and Interconnection Network,SICS, Working Paper (July 1986).
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Ali, K.A.M. OR-parallel execution of Prolog on a multi-sequential machine. Int J Parallel Prog 15, 189–214 (1986). https://doi.org/10.1007/BF01414554
Received:
Revised:
Issue Date:
DOI: https://doi.org/10.1007/BF01414554