An abstract machine for restricted AND-parallel execution of logic programs

  • M. V. Hermenegildo
Session 1a: Parallel Implementations
Part of the Lecture Notes in Computer Science book series (LNCS, volume 225)


Although the sequential execution speed of logic programs has been greatly improved by the concepts introduced in the Warren Abstract Machine (WAM), parallel execution represents the only way to increase this speed beyond the natural limits of sequential systems. However, most proposed parallel logic programming execution models lack the performance optimizations and storage efficiency of sequential systems. This paper presents a parallel abstract machine which is an extension of the WAM and is thus capable of supporting AND-Parallelism without giving up the optimizations present in sequential implementations. A suitable instruction set, which can be used as a target by a variety of logic programming languages, is also included. Special instructions are provided to support a generalized version of "Restricted AND-Parallelism" (RAP), a technique which reduces the overhead traditionally associated with the run-time management of variable binding conflicts to a series of simple run-time checks, which select one out of a series of compiled execution graphs.


Logic programming Parallel processing Warren abstract machine Restricted and-parallelism Prolog 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    J.H. Chang, A. M. Despain, and D. DeGroot. AND-parallelism of Logic Programs Based on Static Data Dependency Analysis. In Digest of Papers of COMPCON Spring '85, pages 218–225. 1985.Google Scholar
  2. [2]
    K. Clark and S. Gregory. PARLOG: A Parallel Logic Programming Language. Research Report DOC 83/5, Dept. of Computing, Imperial College of Science and Technology, May, 1983. University of London.Google Scholar
  3. [3]
    Clark, K.L. and G. McCabe. The Control Facilities of IC-Prolog. Expert Systems in the Micro Electronic Age. Edinburgh University Press, 1979.Google Scholar
  4. [4]
    J.S. Conery and D.F. Kibler. Parallel Interpretation of Logic Programs. In Proc. of the ACM Conference on Functional Programming Languages and Computer Architecture., pages 163–170. October, 1981.Google Scholar
  5. [5]
    J.S. Conery. The AND/OR Process Model for Parallel Interpretation of Logic Programs. PhD thesis, The University of California at Irvine, 1983. Technical Report 204.Google Scholar
  6. [6]
    Doug DeGroot. Restricted And-Parallelism. Int'l Conf. on Fifth Generation Computer Systems, November, 1984.Google Scholar
  7. [7]
    T. P. Dobry, A. M. Despain, and Y. N. Patt. Performance Studies of a Prolog Machine Architecture. In Proceedings of the 12 Int'l. Symp. on Computer Architecture, pages 180–191. IEEE Computer Society Press, 1985.Google Scholar
  8. [8]
    John Gabriel, Tim Lindholm, E. L. Lusk, and R. A. Overbeek. A Tutorial on the Warren Abstract Machine. Technical Report, Argonne National Laboratory, Argonne, Ill. 60439, 1985.Google Scholar
  9. [9]
    Manuel V. Hermenegildo. A Restricted AND-parallel Execution Model and Abstract Machine for Prolog Programs. Technical Report PP-104-85, Microelectronics and Computer Technology Corporation (MCC), Austin, TX 78759, 1985.Google Scholar
  10. [10]
    Manuel V. Hermenegildo and Roger I. Nasr. Efficient Implementation of Backtracking in AND-parallelism. In Proceedings of the 3rd. Int'l. Conf. on Logic Programming. Springer-Verlag, 1986.Google Scholar
  11. [11]
    Kowalski, R.A. Predicate Logic as a Programming Language. Proc. IFIPS 74, 1974.Google Scholar
  12. [12]
    R. A. Overbeek, J. Gabriel, T. Lindholm, and E. L. Lusk. Prolog on Multiprocessors. Technical Report, Argonne National Laboratory, Argonne, Ill. 60439, 1985.Google Scholar
  13. [13]
    Luis M. Pereira and Roger I. Nasr. Delta-Prolog: A Distributed Logic Programming Language. In Proceedings of the Intl. Conf. on 5th. Gen. Computer Systems. 1984. Japan.Google Scholar
  14. [14]
    Pereira, L.M., F. C. N. Pereira, and D. H. D. Warren. User's Guide to DECsystem-10 Prolog Dept. of Artificial Intelligence, Univ. of Edinburgh, 1978.Google Scholar
  15. [15]
    E. Y. Shapiro. A subset of Concurrent Prolog and its interpreter. Technical Report TR-003, ICOT, January, 1983. Tokyo.Google Scholar
  16. [16]
    E. Tick and D.H.D. Warren. Towards a Pipelined Prolog Processor. In 1984 International Symposium on Logic Programming, Atlantic City, pages 29–42. IEEE Computer Society Press, Silver Spring, MD, February, 1984.Google Scholar
  17. [17]
    David H. D. Warren. An Abstract Prolog Instruction Set. Technical Note 309, SRI International, AI Center, Computer Science and Technology Division, 1983.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1986

Authors and Affiliations

  • M. V. Hermenegildo
    • 1
  1. 1.Department of Electrical and Computer EngineeringThe University of Texas at AustinAustin

Personalised recommendations