A Message Passing Implementation of Lazy Task Creation

This paper describes an implementation technique for Multilisp's future construct aimed at large shared-memory multiprocessors. The technique is a variant of lazy task creation. The original implementation of lazy task creation described in [Mohr, 199l] relies on efficient shared memory to distribute tasks between processors. In contrast, we propose a task distribution method based on a message passing paradigm. Its main advantages are that it is simpler to implement, has a lower cost for locally run tasks, and allows full caching of the stack on cache incoherent machines. Benchmarks on a 32 processor BBN TC2000 show that our method is more efficient than the original implementation by as much as a factor of 2.

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

[2]  Don Allen,et al.  The Butterfly™ lisp system , 1986, AAAI 1986.

[3]  Marc Feeley,et al.  An efficient and general implementation of futures on large scale shared-memory multiprocessors , 1993 .

[4]  Marc Feeley Polling efficiently on stock hardware , 1993, FPCA '93.

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

[6]  Marc Feeley,et al.  A parallel virtual machine for efficient scheme compilation , 1990, LISP and Functional Programming.

[7]  Robert R. Kessler,et al.  An implementation of portable standard LISP on the BBN butterfly , 1988, LFP '88.

[8]  Corporate Ieee IEEE Std 1178-1990, IEEE Standard for the Scheme Programming Language , 1991 .

[9]  Andrew W. Appel Allocation without locking , 1989, Softw. Pract. Exp..

[10]  Robert H. Halstead,et al.  Implementation of multilisp: Lisp on a multiprocessor , 1984, LFP '84.

[11]  Gary L. Peterson,et al.  Myths About the Mutual Exclusion Problem , 1981, Inf. Process. Lett..

[12]  Richard P. Gabriel,et al.  Preliminary results with the initial implementation of Qlisp , 1988, LFP '88.

[13]  James R. Larus,et al.  Features for Multiprocessing in SPUR Lisp , 1988 .

[14]  Alexandru Nicolau,et al.  Adaptive Bitonic Sorting: An Optimal Parallel Algorithm for Shared-Memory Machines , 1989, SIAM J. Comput..

[15]  Eric Mohr Dynamic partitioning of parallel Lisp programs , 1992 .