Skip to main content

Monaco: A high-performance flat concurrent logic programming system

  • Paper Sessions
  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 694))

Abstract

This paper describes Monaco, a high-performance implementation of flat committed-choice languages such as Flat Guarded Horn Clauses. The compiler produces native code for linking to a runtime system on shared-memory multiprocessors. A reduced abstract-machine instruction set facilitates decision-graph code generation and traditional optimizations based on dataflow analysis. An inexpensive system-call interface is provided to lower the overhead of memory allocation and procedure invocation. Unification has been optimized to streamline the common cases. We report initial performance measurements of our current instantiation of the system, for the Sequent Symmetry, for a suite of benchmarks.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. H. Ait-Kaci. Warren's Abstract Machine: A Tutorial Reconstruction. MIT Press, 1991.

    Google Scholar 

  2. Y. Asakawa et al. A Very Fast Prolog Compiler on Multiple Architectures. In Fall Joint Computer Conference, pages 963–968. ACM and IEEE Computer Society, 1986.

    Google Scholar 

  3. T. Chikayama et al. Overview of the Parallel Inference Machine Operating System PIMOS. In FGCS'88, pages 230–251, Tokyo, November 1988. ICOT.

    Google Scholar 

  4. J. A. Crammond. The Abstract Machine and Implementation of Parallel Parlog. New Generation Computing, 10(4):385–422, August 1992.

    Google Scholar 

  5. S. Debray et al. Weighted Decision Trees. In JICSLP'92, MIT Press, 1992.

    Google Scholar 

  6. S. K. Debray, N.-W. Lin, and M. Hermenegildo. Task Granularity Analysis in Logic Programs. In SIGPLAN PLDI'90, pages 174–188, June 1990. ACM Press.

    Google Scholar 

  7. S. Duvvuru, Monaco: A High Performance Implementation of FGHC on Shared-Memory Multiprocessors. Master's thesis, University of Oregon, June 1992.

    Google Scholar 

  8. I. Foster and S. Taylor. Strand: A Practical Parallel Programming Language. In North American Conference on Logic Programming, pages 497–512. MIT Press, 1989.

    Google Scholar 

  9. D. Gudeman et al. jc: An Efficient and Portable Sequential Implementation of Janus. In JICSLP'92, pages 399–413. MIT Press, November 1992.

    Google Scholar 

  10. A. Harsat and R. Ginosar. CARMEL-2: A Second Generation VLSI Architecture for Flat Concurrent Prolog. New Generation Computing, 7:197–218, 1990.

    Google Scholar 

  11. Y. Kimura and T. Chikayama. An Abstract KL1 Machine and its Instruction Set. In ISLP, pages 468–477. IEEE Computer Society, 1987.

    Google Scholar 

  12. S. Kliger. Compiling Concurrent Logic Programming Languages. PhD thesis, The Weizmann Institute of Science, Rehovot, October 1992.

    Google Scholar 

  13. M. Korsloot and E. Tick. Compilation Techniques for Nondeterminate Flat Concurrent Logic Programming Languages. In ICLP, pages 457–471. MIT Press, June 1991.

    Google Scholar 

  14. K. Kumon et al. Architecture and Implementation of PIM/p. In FGCS'92, pages 414–424, Tokyo, June 1992. ICOT.

    Google Scholar 

  15. B. C. Massey. Sequentialization of Parallel Logic Programs with Mode Analysis. Master's thesis, University of Oregon, September 1992.

    Google Scholar 

  16. V. A. Saraswat et al. Janus: A Step Towards Distributed Constraint Programming. In NACLP'90, pages 431–446. MIT Press, October 1990.

    Google Scholar 

  17. M. Sato et al. Evaluation of the KL1 Parallel System on a Shared Memory Multiprocessor. In IFIP Work. Conf. on Parallel Process., pg 305–318. North Holland, 1988.

    Google Scholar 

  18. M. Sato et al. Exploiting Fine Grain Parallelism in Logic Programming on a Parallel Inference Machine. Technical Report TR-676, ICOT, Tokyo, August 1991.

    Google Scholar 

  19. E. Y. Shapiro. The Family of Concurrent Logic Programming Languages. ACM Computing Surveys, 21(3), 1989.

    Google Scholar 

  20. R. Sundararajan et al. Variable Threadedness Analysis for Concurrent Logic Programs. In JICSLP'92, pages 493–508. Washington D.C., MIT Press, November 1992.

    Google Scholar 

  21. K. Taki. Parallel Inference Machine PIM. In International Conference on Fifth Generation Computer Systems, pages 50–72, Tokyo, June 1992. ICOT.

    Google Scholar 

  22. A. Taylor. LIPS on a MIPS: Results From a Prolog Compiler for a RISC. In International Conference on Logic Programming, pages 174–185. MIT Press, June 1990.

    Google Scholar 

  23. E. Tick and C. Banerjee. Performance Evaluation of Monaco Compiler and Runtime Kernel. In Int. Conf. on Logic Programming. Budapest, MIT Press, June 1993.

    Google Scholar 

  24. E. Tick and X. Zhong. A Compile-Time Granularity Analysis Algorithm and its Performance Evaluation. New Generation Computing, 11(3–4), June 1993.

    Google Scholar 

  25. K. Ueda and M. Morita. A New Implementation Technique for Flat GHC. In International Conference on Logic Programming, pages 3–17. MIT Press, June 1990.

    Google Scholar 

  26. P. L. Van Roy and A. M. Despain. High-Performace Logic Programming with the Aquarius Prolog Compiler. IEEE Computer Magazine, pages 54–68, January 1992.

    Google Scholar 

  27. K. Yanoo. An Optimizing Compiler for a Parallel Inference Language. In H. Tanaka, editor, Annual Report of the Research on Parallel Inference Engine, pages 71–94. University of Tokyo, April 1992. (in Japanese).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Arndt Bode Mike Reeve Gottfried Wolf

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Tick, E. (1993). Monaco: A high-performance flat concurrent logic programming system. In: Bode, A., Reeve, M., Wolf, G. (eds) PARLE '93 Parallel Architectures and Languages Europe. PARLE 1993. Lecture Notes in Computer Science, vol 694. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-56891-3_21

Download citation

  • DOI: https://doi.org/10.1007/3-540-56891-3_21

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-56891-9

  • Online ISBN: 978-3-540-47779-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics