Parallel logic programming for numeric applications

  • Ralph Butler
  • Ewing Lusk
  • William McCune
  • Ross Overbeek
Session 4a: Parallel Applications And Implementations
Part of the Lecture Notes in Computer Science book series (LNCS, volume 225)


In this paper we report on a series of experiments involving the use of various dialects of parallel logic programming to express and control parallelism. The central goal of these experiments was to explore the possibility of writing numeric code for multiprocessors while expressing the synchronization requirements using logic programming. We considered three dialects of parallel logic programming: Parlog, Delta-Prolog, and Flat Concurrent Prolog. The experiments involved the formulation of a well-known, highly-parallel algorithm in each of the three languages. In one case (Parlog, semi-manually compiled code for an implementation of an extended Warren Abstract Machine), we were also able to compare the performance of the resulting program with that of the same problem expressed in C, with monitors as the added parallelism construct. We present speedups obtained for the C and Parlog versions. The experiments illustrate the effect of granularity size on attainable degrees of parallelism. Based on the limited evidence from these experiments, we offer some conclusions on the suitability of logic programming languages for programming multiprocessors.


Logic Programming Grid Computation Event Goal Logic Programming Language Bilingual Program 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Keith Clark and Steve Gregory, “PARLOG: Parallel Programming in Logic,” Research Report DOC 84/4, Department of Computing, Imperial College of Science and Technology (April 1984, revised June, 1985).Google Scholar
  2. 2.
    Keith Clark and Steve Gregory, “PARLOG: Parallel Programming in Logic,” ACM Transactions on Programming Languages and Systems 8(1) (January, 1986).Google Scholar
  3. 3.
    Barney Glickfeld and Ross Overbeek, “Quasi-automatic parallelization: a simplied approach to multiprocessing,” Technical Report ANL-855-70, Argonne National Laboratory (October 1985).Google Scholar
  4. 4.
    Steven Gregory, Design, application and implementation of a parallel logic programming language, Doctoral Thesis, Imperial College of Science and Technology, London, September 1985.Google Scholar
  5. 5.
    C. A. R. Hoare, “Communicating Sequential Processes,” Communications of the ACM 21(8), pp. 666–677 (August 1978).CrossRefGoogle Scholar
  6. 6.
    A. J. Kusalik, “Serialization of process reduction in Concurrent Prolog,” New Generation Computing 2(3), pp. 835–843 (1984).Google Scholar
  7. 7.
    Ewing L. Lusk and Ross A. Overbeek, “Implementing Multiprocessing Algorithms Now,” pp. 5–10 in New Directions in Software for Advanced Computer Architectures, ANL/MCS-TM-32, MCS, Argonne National Laboratory (August 1984).Google Scholar
  8. 8.
    E. L. Lusk and R. A. Overbeek, “Use of Monitors in FORTRAN: a Tutorial on the Barrier, Self-Scheduling Do-Loop, and Askfor Monitors,” in Parallel MIMD Computation: The HEP Supercomputer and its Applications, ed. J. S. Kowalik, The MIT Press (1985).Google Scholar
  9. 9.
    E. L. Lusk, R. L. Stevens, and R. A. Overbeek, “A tutorial on the use of monitors in C: writing portable code for multiprocessors,” ANL-85-2, Argonne National Laboratory (January 1985).Google Scholar
  10. 10.
    Colin Mierowsky, “Design and implementation of Flat Concurrent Prolog,” CS84-21, Weizmann Institute of Science (December 1984).Google Scholar
  11. 11.
    Luis Moniz Pereira and Roger Nasr, “Delta-Prolog: a distributed logic programming language,” in Proceedings of FGCS, Tokyo (November 1984).Google Scholar
  12. 12.
    Ehud Shapiro, “Systolic programming: a paradigm of parallel processing,” Technical Report CS84-16, Weizmann Institute of Science (January 1985).Google Scholar
  13. 13.
    Ehud Shapiro, William Silverman, Avshalom Houri, and Michael Hirsch, Logix User Manual for Release 1.1, August, 1985.Google Scholar
  14. 14.
    Ehud Y. Shapiro, A Subset of Concurrent Prolog and Its Interpreter, (preprint, Weizmann Institute of Science, January 1983).Google Scholar
  15. 15.
    D. H. D. Warren, “Logic programming and compiler writing,” Software — Practice and Experience 10, pp. 97–125 (1980).Google Scholar
  16. 16.
    D. H. D. Warren, “An Abstract Prolog Instruction Set,” SRI Technical Note 309, SRI International (October 1983).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1986

Authors and Affiliations

  • Ralph Butler
    • 1
  • Ewing Lusk
    • 1
  • William McCune
    • 1
  • Ross Overbeek
    • 1
  1. 1.Argonne National LaboratoryMathematics and Computer Science DivisionArgonne

Personalised recommendations