The parallel graph reduction machine, ALICE
Traditionally the design of programming languages has been compromised in order to exploit the most efficient machine architecture available, which has usually been of the von Neumann type. However, we believe that functional languages provide the most effective means for producing software and that the right approach is to develop a customised architecture for the implementation of the most suitable computational model for these languages.
In this paper we adopt graph reduction as the most natural computational model for functional languages and show how to represent it in a packet-based abstract computer architecture, ALICE. This architecture is highly parallel in nature, with a collection of processing agents performing redex reductions concurrently and asynchronously on the one hand, and the packets that represent the nodes in a function expression graph being distributed over several memory segments on the other. We suggest how a concrete parallel machine can be built to realise this abstract architecture, and describe the design of an experimental prototype machine. This prototype is a hardware emulator of the ideal concrete architecture which is to be built in customised VLSI, and is constructed using the INMOS Transputer as the basic building block. The design utilised a performance model to assist in choosing the optimal organisation of machine components, such as the ratio of processor to memory boards, and the model's predictions for the performance of various configurations of the machine are presented, along with some preliminary measurements made on the prototype. Finally, we make some suggestions for future design enhancements based on our experiences to date.
KeywordsLoad Sharing Functional Language Virtual Agent Primitive Function Graph Reduction
Unable to display preview. Download preview PDF.
- [BM80]R. M. Burstall, D. B. MacQueen, D. T. Sannella, "HOPE: An Experimental Applicative Language", 1st International LISP Conference, 1980.Google Scholar
- [CF86]M. D. Cripps, A. J. Field, M. J. Reeve, "The Design and Implementation of ALICE: A Parallel Graph Reduction Machine", In ‘Functional Programming: Languages, Tools and Architectures', ed. S. Eisenbach. Ellis Horwood Limited, 1986.Google Scholar
- [CO77]P.J. Courtois, "Decomposability", Academic Press, 1977.Google Scholar
- [DR81]J. Darlington, M. J. Reeve, "ALICE: A Multiprocessor Reduction Machine for the Parallel Evaluation of Applicative Languages", ACM/MIT Conference on Functional Programming Languages and Computer Architecture, 1981.Google Scholar
- [DR83]J. Darlington, M. J. Reeve, "ALICE and the Parallel Evaluation of Logic Programs", 10th Annual Symposium on Computer Architecture, 1983.Google Scholar
- [FC85]A. J. Field, M. D. Cripps, "Self-Clocking Networks", International Conference on Parallel Processing, 1985.Google Scholar
- [SI85]H. J. Siegel, "Interconnection Networks for Large-Scale Parallel Processing: Theory and Case Studies", Lexington Books, 1985.Google Scholar
- [GH84]H. W. Glaser, C. L. Hankin, D. Till, "Principles of Functional Programming", Prentice-Hall, 1984.Google Scholar
- [HF86]P. G. Harrison, A. J. Field, "Performance Modelling of Parallel Computer Systems", PERFORMANCE '86/ACM SIGMETRICS, 1986.Google Scholar
- [JO85]T. Johnsson, "Lambda Lifting: Transforming Programs to Recursive Equations", Conference on Functional Programming and Computer Architecture, 1985.Google Scholar
- [KO79]R. A. Kowalski, "Logic for Problem Solving", North Holland, 1979.Google Scholar
- [MO82]I. W. Moor, "An Applicative Compiler for a Parallel Machine", SIGNPLAN Symposium on Compiler Construction, 1982.Google Scholar
- [PA79]J. H. Patel, "Processor-Memory Interconnections for Multi-Processors", 6th Annual Symposium on Computer Architecture, 1979.Google Scholar
- [RE81]M. J. Reeve, "An Introduction to the ALICE Compiler Target Language", Research Report, Dept. of Computing, Imperial College, 1981.Google Scholar
- [SC81]C. H. Sauer, K. M. Chandy, "Computer Systems Performance Modelling", Prentice-Hall, 1981.Google Scholar