Implementation of tuple space machines

The language Linda proposed by Gelernter has a number of characteristics which make it a potentially powerful tool for parallel and distributed computing. One of its most important characteristics is tuple space, a communication model based on a logical shared memory. The degree to which Linda achieves its potential depends strongly on the implementation of tuple space. The thesis of this work is that tuple spaces can be implemented with reasonable efficiency on a variety of multi-processor architectures. We attempt to establish this thesis by means of an existence proof. To this end, two implementations will be discussed. One is for the Bell Lab's S/Net machine, a bus-based multiprocessor. Here our primary concern was low-level communication management. The second implementation was for two examples of shared-memory architecture: the Encore Multimax and the Sequent Balance. Freed of explicit communication concerns, this effort concentrated on building a more sophisticated run-time system that is supported by a detailed compile-time analysis of the Linda source code. Timings for a variety of test programs for each of the implementations will be presented. Extensions to the compile-time analysis and the implications of such extensions for run-time systems will also be discussed.