Speculative Computation in Multilisp

We demonstrate by experiments that performing computations in parallel before their results are known to be required can yield performance improvements over conventional approaches to parallel computing. We call such eager computation of expressions speculative computation, as opposed to conventional mandatory computation that is used in almost all contemporary parallel programming languages and systems. The two major requirements for speculative computation are: 1) a means to control computation to favor the most promising computations and 2) a means to abort computation and reclaim computation resources.

[1]  Keith L. Clark,et al.  PARLOG: parallel programming in logic , 1986, ACM Trans. Program. Lang. Syst..

[2]  A. H. Dekker,et al.  Speculative parallelism in a distributed graph reduction machine , 1989, [1989] Proceedings of the Twenty-Second Annual Hawaii International Conference on System Sciences. Volume II: Software Track.

[3]  Gerald J. Sussman,et al.  Structure and interpretation of computer programs , 1985, Proceedings of the IEEE.

[4]  Robert H. Halstead,et al.  Parallel Symbolic Computing , 1986, Computer.

[5]  Slocum Miller James,et al.  Multischeme : a parallel processing system based on MIT scheme , 1987 .

[6]  Edward J. Krall,et al.  A case study of parallel execution of a rule-based expert system , 2005, International Journal of Parallel Programming.

[7]  Carl Hewitt,et al.  The incremental garbage collection of processes , 1977, Artificial Intelligence and Programming Languages.

[8]  Richard P. Gabriel,et al.  Qlisp: parallel processing in Lisp , 1989, IEEE Software.

[9]  Ehud Shapiro Concurrent Prolog: A Progress Report , 1986, Computer.

[10]  R. R. Halstead,et al.  Concert: design of a multiprocessor development system , 1986, ISCA 1986.

[11]  Richard Mark Soley,et al.  On the Efficient Exploitation of Speculation under Data flow Paradigms of Control , 1989 .

[12]  F. Warren Burton,et al.  Speculative computation, parallelism, and functional programming , 1985, IEEE Transactions on Computers.

[13]  Kazunori Ueda,et al.  Guarded Horn Clauses , 1986, LP.

[14]  Hiroyuki Sato,et al.  Overview of the Parallel Inference Machine Operating System (PIMOS) , 1988, FGCS.

[15]  Robert H. Halstead,et al.  Mul-T: a high-performance parallel Lisp , 1989, PLDI '89.

[16]  Paul Hudak,et al.  Garbage collection and task deletion in distributed applicative processing systems , 1982, LFP '82.

[17]  Robert H. Halstead,et al.  MULTILISP: a language for concurrent symbolic computation , 1985, TOPL.

[18]  Carl Hewitt,et al.  The Scientific Community Metaphor , 1988, IEEE Transactions on Systems, Man, and Cybernetics.

[19]  Rex L. Page,et al.  Deleting Irrelevant Tasks in an Expression-Oriented Multiprocessor System , 1981, TOPL.

[20]  Robert H. Halstead An assessment of multilisp: Lessons from experience , 2005, International Journal of Parallel Programming.

[21]  Nils J. Nilsson,et al.  Principles of Artificial Intelligence , 1980, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[22]  Henry Lieberman,et al.  A real-time garbage collector based on the lifetimes of objects , 1983, CACM.