ABSTRACT
We present experimental evidence 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.
We discuss these requirements in the parallel symbolic language Multilisp and present a sponsor model for speculative computation in Multilisp which handles control and reclamation of computation in a single, elegant framework. We outline an implementation of this sponsor model and present performance results for several applications of speculative computation. The results demonstrate that our support for speculative computation adds expressive and computational power to Multilisp, with observed performance improvement as great as 26 times over conventional approaches to parallel computation.
- Bur85.F.W. Burton. Speculative computation, parallelism, and functional programming. IEEE Trans. on Computers, pages 1190-1193, December 1985.Google Scholar
- CG87.K. Clark and S. Gregory. Parlog: Parallel programming in logic. In E. Shapiro, editor, Concurrent Prolog: Collected Papers, Volume 1, Chapter 3. M.I.T. Press, 1987. Google ScholarDigital Library
- CSM88.T. Chikayama, H. Sato, and T. Miyazaki. Overview of the parallel inference machine operating system (PIMOS). In Int'l. Con/. on Fifth Generation Computer Systems, pages 230-251, 1988.Google Scholar
- Eps89.B. Epstein. Support for speculative computation in MultiScheme. Bachelor's Thesis, Brandeis University, May 1989.Google Scholar
- Gab85.R. Gabriel. Per/or~rnance Evaluation of Lisp Systems. M.I.T. Press, 1985. Google ScholarDigital Library
- GG89.R. Goldman and R. Gabriel. Qlisp: Parallel processing in Lisp. IEEE Software, pages 51-59, July 1989. Google ScholarDigital Library
- GP81.D. Grit and R. Page. Deleting irrelevant tasks in an expression-oriented multiprocessor system. A CM Trans. on Prog. Languages and Systems, pages 49-59, October 1981. Google ScholarDigital Library
- Hal85.R. Halstead. Multilisp: A language for concurrent symbolic computation. A CM Trans. on Prog. Languages and Systems, pages 501-538, October 1985. Google ScholarDigital Library
- HAOS86.R. Halstead, T. Anderson, R. Osborne, and T. Sterling. Concert: Design of a multlprocessor development system. In 13th Annual Syrup. on Computer Architecture, pages 40-48, June 1986. Google ScholarDigital Library
- HK82.P. Hudak and R. Keller. Garbage collection and task deletion in Distributed Applicative Processing Systems. In Proceedings 1982 A CM Con/. on Lisp and Functional Prog., pages 168-178, 1982. Google ScholarDigital Library
- KH81.W. Kornfeld and C. Hewitt. The scientific community metaphor. IEEE Trans. on Systems, Man, and Cybernetics, pages 24-33, January 1981.Google Scholar
- KHM89.D. Kranz, R. Halstead, and E. Mohr. MuI~T: A hlgh-performance parallel Lisp. In SigPlan Conf. on Prog. Language Design and Implementation, pages 81-90, 1989. Google ScholarDigital Library
- KM86.E. Krall and P. McGehearty. A case study of parallel execution of a rule-based expert system. Int'l. Journal o/Parallel Prograrnrning, pages 5- 32, January 1986. Google ScholarDigital Library
- Lus88.E. Lusk et al. The Aurora Or-parallel Prolog system. In Proc. of Int'l. Conf. on Fifth Generation Computer Systems, pages 819-830, 1988.Google Scholar
- Mil87.J. Miller. MultiScheme: A parallel processing system based on MIT Scheme. Technical Report TR-402, L~boratory for Computer Science, M.I.T., September 1987.Google Scholar
- Nil80.N. Nilsson. Principles of Artificial Intelligence. Morgan Kaufmann, 1980. Google ScholarDigital Library
- Osb89.R. Osborne. Speculative computation in Multilisp. Technical Report TR-464, Laboratory for Computer Science, M.I.T., November 1989.Google Scholar
- Osb90.R. Osborne. Speculative parallelism in Multilisp. In T. Ito and R. Ha}stead, editors, Parallel Lisp: Languages and Systems, Proceedings of U.S./Japan Workahop on Parallel Lisp. Lecture Notes in Computer Science, Springer- Verlag, 1990. To be published. Google ScholarDigital Library
- PD89.A. Partridge and A. Dekker. Speculative parallelism in a distributed graph reduction machine. In Bruce Shriver, editor, Proceedings of ~r~d An. nual Hawaii Int'l Conf. on System Sciences, Volume 2, pages 771-779, 1989.Google Scholar
- Sha87.E. Shapiro. Concurrent Prolog: A progress report. In E. Shapiro, editor, Concurrent Prolog: Collected Papers, Volume 1, Chapter 5. M.I.T. Press, 1987. Google ScholarDigital Library
- Sol89.R. Soley. On the efficient exploitation of speculation under datattow paradigms of control. Technical Report Ttk-443, Laboratory for Computer Science, M.I.T., 1989.Google Scholar
- Ued87.K. Ueda. Guarded Horn clauses. In E. Shapiro, editor, Concurrent Prolog: Collected Papers, Volume 1, Chapter 4. M.I.T. Press, 1987. Google ScholarDigital Library
Index Terms
- Speculative computation in multilisp
Recommendations
MULTILISP: a language for concurrent symbolic computation
Multilisp is a version of the Lisp dialect Scheme extended with constructs for parallel execution. Like Scheme, Multilisp is oriented toward symbolic computation. Unlike some parallel programming languages, Multilisp incorporates constructs for causing ...
Parallel N-ary Speculative Computation of Simulated Annealing
Simulated annealing is known to be an efficient method for combinatorial optimization problems. Its usage for realistic problem size, however, has been limited by the long execution time due to its sequential nature. This report presents a practical ...
Comments