Super Monaco: Its Portable and Efficient Parallel Runtime System
J. S. Larson, B. C. Massey, E. Tick
Committee:
Technical Report(Dec 1969)
Keywords:
"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. The compiler, written in KL1, takes high-level programs and produces intermediate code for the Monaco abstract machine. An "assembler-assembler" converts a host machine description into a KL1 program which translates Monaco intermediate code into target assembly code. There are currently two intermediate code translators; one for SGI MIPS-based hosts, and another for Sequent Symmetry 80386-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.