GRIP — a high-performance architecture for parallel graph reduction
GRIP is a high-performance parallel machine designed to execute functional programs using supercombinator graph reduction. It uses a high-bandwidth bus to provide access to a large, distributed shared memory, using intelligent memory units and packet-switching protocols to increase the number of processors which the bus can support. GRIP is also being programmed to support parallel Prolog and DACTL.
We outline GRIP's architecture and firmware, discuss the major design issues, and describe the current state of the project and our plans for the future.
- [Clack86]Clack CD and Peyton Jones SL, "The four-stroke reduction engine", ACM Conference on Lisp and Functional Programming, Boston, Aug 1986.Google Scholar
- [Darl81]Darlington J and Reeve M, "ALICE — a multiprocessor reduction machine for the parallel evaluation of applicative languages", Proc ACM conference on Functional Programming Languages and Computer Architecture, New Hampshire, pp65–75, Oct 1981.Google Scholar
- [Dijks85]Dijkstra EW, Feijen WHJ and van Gasteren AJM, "Derivation of a termination detection algorithm of distributed computations", in Control Flow and Data Flow — Concepts of Distributed Programming, ed Broy, Springer-Verlag, 1985.Google Scholar
- [Johns87]Johnsson, T, "Compiling lazy functional languages", PhD thesis, Programming Methodology Group, Chalmers University, Goteborg, 1987.Google Scholar
- [Peyt87]Peyton Jones, SL, "The implementation of functional programming languages", Prentice Hall, 1987.Google Scholar
- [Sarg86]Sargeant, J. "Load balancing, locality and parallelism control in fine-grain parallel machines", Department of Computer Science, University of Manchester, Nov 1986.Google Scholar
- [Stoye84]Stoye WR, Clarke TJW and Norman AC, "Some practical methods for rapid combinator reduction", Proc ACM Symposium on Lisp and Functional Programming, Austin, pp159–166, Aug 1984.Google Scholar