Abstract
In Scheme-based parallel Lisp systems there are proposed a number of structured concurrency constructs like pcall, par, par- and, par-or and plet, etc. A standard evaluation strategy for these structured constructs has been the eager task creation (ETC) that creates child processes to execute their argument expressions whenever these structured constructs are encountered. But the ETC strategy for structured concurrency constructs is known to be inefficient because of overhead caused by excessive process creation. In this paper we propose an efficient evaluation strategy for structured concurrency constructs, called the steal-based evaluation (SBE) strategy, which suppresses excessive process creation. SBE is based on an extended use of two basic actions steal and inlining of lazy task creation used in an efficient implementation of future. The idea of SBE is extended to give a parallel implementation of the delay construct and stream computation expressed with delay yielding the steal-based lazy evaluation (SLE). In Concluding Remarks there are discussed the following issues: a programming style called structural parallel symbolic programming which is based on a functional core of Scheme and the SBE strategy, Restricted Eager Task Creation to suppress excessive process creation under ETC, and a simple constraint-based automatic parallelization of functional programs.
Preview
Unable to display preview. Download preview PDF.
References
H. Abelson, G. Sussman, “Structure and Interpretation of Computer Programs”, MIT Press, 1984.
M. Feeley, “A message passing implementation of lazy task creation”, Parallel Symbolic Computing: Languages, Systems, and Applications (Eds. R. Halstead, Jr., T. Ito), Springer LNCS 748, 94–107, 1993.
R. Gabriel, J. McCarthy, “Queue-based multiprocessing Lisp”, Conference Record of ACM Symposium on Lisp and Functional Programming, 25–44, 1984.
R. Halstead, Jr., “Implementation of Multilisp: Lisp on a multiprocessor”, Conference Record of 1984 ACM Symposium on Lisp and Functional Programming, 9–17, 1984.
R. Halstead,Jr., “Multilisp: A language for concurrent symbolic computation”, ACM Trans. on Programming Languages and Systems, vol. 4. no.7, 501–538, 1985.
R. Halstead,Jr., “New ideas in parallel Lisp: Language design, implementation, and programming tools”, Parallel Lisp: Languages and Systems (Eds. T. Ito, R. Halstead, Jr.), Springer LNCS 441, 2–57, 1990.
R. Halstead, Jr., T. Ito, “Parallel Symbolic Computing: Languages, Systems, and Applications”, Springer LNCS 748, 1993.
W. Harrison III, Z. Ammarguellat, “Design of automatic parallelizers for symbolic and numeric programs”, Parallel Lisp: Languages and Systems (Eds. T. Ito, R. Halstead, Jr.), Springer LNCS 441, 235–253, 1990.
IEEE Computer Society, “IEEE Standard for the Scheme Programming Language”, 1991.
T. Ito, T. Tamura, S. Wada, “Theoretical comparisons of interpreted/compiled executions of Lisp on sequential and parallel machine models”, Information Processing 86 (Proceedings of IFIP Congress 86), 349–354, 1986.
T. Ito, M. Matsui, “A parallel Lisp language PaiLisp and its kernel specification”, Parallel Lisp: Languages and Systems (Eds. T. Ito, R. Halstead, Jr.), Springer LNCS 441, 58–100, 1990.
T. Ito, R. Halstead, Jr., “Parallel Lisp: Languages and Systems”, Springer LNCS 441, 1990.
T. Ito, T. Seino, “On PaiLisp continuation and its implementation”, Proceedings of ACM Workshop on Continuations (Eds. O. Danvy, C. Talcott), 73–90, 1992.
T. Ito, T. Seino, “P-continuation based implementation of PaiLisp interpreter”, Parallel Symbolic Computing: Languages, Systems, and Applications (Eds. R. Halstead, Jr, T. Ito), Springer LNCS 748, 108–154, 1993.
S. Kawamoto, T. Ito, “Multi-threaded PaiLisp with granularity adaptive parallel execution”, Theory and Practice of Parallel Programming (Eds. T. Ito, A. Yonezawa), Springer LNCS 907, 97–117, 1995.
E. Mohr, D. Kranz, R. Halstead, Jr., “Lazy task creation: A technique for increasing the granularity of parallel programs”, IEEE Trans. on Parallel and Distributed Systems, vol. 2, no.3, 1991.
E. Mohr, “Distillations of dynamic partitioning experience”, Parallel Symbolic Computing: Languages, Systems, and Applications (Eds. R. Halstead, Jr., T. Ito), Springer LNCS 748, 88–93, 1993.
R. Osborne, “Speculative computation in Multilisp”, Parallel Lisp: Languages and Systems (Eds. T. Ito, R. Halstead, Jr.), Springer LNCS 441, 103–137, 1990.
G. Springer, D. Friedman, “Scheme and the Art of Programming”, MIT Press, 1989.
J. Weening, J. Pehoushek, “Low-cost process creation and dynamic partitioning in Qlisp”, Parallel Lisp: Languages and Systems (Eds. T. Ito, R. Halstead, Jr.), Springer LNCS, 441, 182–199, 1990.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ito, T. (1996). Efficient evaluation strategies for structured concurrency constructs in parallel Scheme systems. In: Ito, T., Halstead, R.H., Queinnec, C. (eds) Parallel Symbolic Languages and Systems. PSLS 1995. Lecture Notes in Computer Science, vol 1068. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0023054
Download citation
DOI: https://doi.org/10.1007/BFb0023054
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61143-1
Online ISBN: 978-3-540-68332-2
eBook Packages: Springer Book Archive