Super Monaco: Its portable and efficient parallel runtime system

  • J. S. Larson
  • B. C. Massey
  • E. Tick
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 966)


“Super Monaco” is the successor to Monaco, a shared-memory multiprocessor implementation of a flat concurrent logic programming language. While the system retains, by-and-large, the older Monaco compiler and intermediate abstract machine, the intermediate code translator and the runtime system have been completely replaced, incorporating a number of new features intended to improve robustness, flexibility, maintainability, and performance. There are currently two native-code backends for 80×86-based and MIPS-based multiprocessors. The runtime system, written in C, improves upon its predecessor with better memory utilization and garbage collection, and includes new features such as an efficient termination scheme and a novel variable binding and hooking mechanism. The result of this organization is a portable system which is robust, extensible, and has performance competitive with C-based systems. This paper describes the design choices made in building the system and the interfaces between the components.


logic programming parallelism native code runtime systems 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    T. Anderson et al. Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism. ACM Trans. on Comp. Sys., 10(1):53–79, 1992.Google Scholar
  2. 2.
    C. Au-Yeung. A RISC Backend for the 2nd Generation Shared-Memory Multiprocessor Monaco System. Bachelor's thesis, University of Oregon, December 1994.Google Scholar
  3. 3.
    T. Chikayama et al. A Portable and Efficient Implementation of KL1. In Int. Symp. on Prog. Lang. Impl. and Logic Prog., pp. 25–39, 1994. Springer-Verlag.Google Scholar
  4. 4.
    J. A. Crammond. The Abstract Machine and Implementation of Parallel Parlog. New Generation Computing, 10(4):385–422, August 1992.Google Scholar
  5. 5.
    I. Foster and S. Taylor. Strand: A Practical Parallel Programming Language. In North American Conf. on Logic Prog., pages 497–512. MIT Press, October 1989.Google Scholar
  6. 6.
    S. Gregory. Parallel Logic Programming in PARLOG: The Language and its Implementation. Addison-Wesley Ltd., Wokingham, England, 1987.Google Scholar
  7. 7.
    D. Gudeman et al. jc: An Efficient and Portable Sequential Implementation of Janus. In Joint Int. Conf. and Symp. on Logic Prog.. MIT Press, 1992.Google Scholar
  8. 8.
    R. C. Haygood. Native Code Compilation in SICStus Prolog. In International Conference on Logic Programming, pages 190–204, Genoa, June 1994. MIT Press.Google Scholar
  9. 9.
    A. Houri et al. A Sequential Abstract Machine for Flat Concurrent Prolog. In Concurrent Prolog: Collected Papers, vol. 2, pp. 513–574. MIT Press, 1987.Google Scholar
  10. 10.
    Y. Kimura and T. Chikayama. An Abstract KL1 Machine and its Instruction Set. In Int. Symp. on Logic Prog., pp. 468–477. IEEE Computer Society Press, 1987.Google Scholar
  11. 11.
    S. Kliger and E. Y. Shapiro. From Decision Trees to Decision Graphs. In North American Conf. on Logic Prog., pages 97–116. MIT Press, October 1990.Google Scholar
  12. 12.
    A. Osterhaug, editor. Guide to Parallel Programming on Sequent Computer Systems. Prentice Hall, Englewood Cliffs, NJ, 2nd edition, 1989.Google Scholar
  13. 13.
    K. Rokusawa et al. Distributed Memory Implementation of KLIC. New Generation Computing, vol. 14, no. 3, 1995.Google Scholar
  14. 14.
    M. Sato et al. Evaluation of the KL1 Parallel System on a Shared Memory Multiprocessor. In IFIP Work. Conf. on Par. Processing. North Holland, 1988.Google Scholar
  15. 15.
    E. Y. Shapiro. The Family of Concurrent Logic Programming Languages. ACM Computing Surveys, 21(3):413–510, 1989.Google Scholar
  16. 16.
    E. Tick. Monaco: A High-Performance Flat Concurrent Logic Programming System. In Conf. on Parallel Arch. and Lang. Europe, LNCS no. 694, pp. 266–278. Springer Verlag, 1993.Google Scholar
  17. 17.
    E. Tick and C. Banerjee. Performance Evaluation of Monaco Compiler and Runtime Kernel. In Int. Conf. on Logic Prog., pages 757–773. MIT Press, June 1993.Google Scholar
  18. 18.
    E. Tick et al. Experience with the Super Monaco Optimizing Compiler. University of Oregon, Dept. of Computer Science Technical Report CIS-TR-95-07.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1995

Authors and Affiliations

  • J. S. Larson
    • 1
  • B. C. Massey
    • 1
  • E. Tick
    • 1
  1. 1.University of OregonEugeneUSA

Personalised recommendations