Abstract
This paper suggests how to extend the Hierarchical Task Graph program representation, and its execution model to address the Lisp code parallelization problems. The advantages of this approach lie in the fact of on avoiding to annotate Lisp programs, and in accounting for run-time scheduling policies all into a unified environment. We start by reviewing the problem of run-time parallelism management, first in the imperative languages setting, and, next in Lisp setting. Before describing the Hierarchical Task Graph (HTG) program representation [7], we review the basic notions of control and data dependence analysis. Finally we describe how to modify the HTG and its execution model to take into account for the Lazy Task Creation model [19], and the Sponsor Model for exploiting speculative computations in Lisp[20].
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
V. Aho, R. Sethi, J.D. Ullman Compilers: Principles, Techniques, and Tools Addison Wesley, Reading, Mass. U.S.A., 1986
J. Ferrante, K.J. Ottenstein, J.D.Warren The Program Dependence Graph and Its Use in Optimization ACM-TOPLAS, 9, 1987, pp. 319–343
Gabriel R. P., and McCarthy J., Queue-based Multiprocessing LISP Conference Record of the 1984 ACM Symposium on LISP and Functional Programming, 1984, pages 25–43.
Goldman R. and Gabriel R. P., QLISP: Experience and New Directions Symposium on Parallel Programming: Experience with Applications, Language and Systems. ACM, pages. 111–123, July 1988
Goldman R. and Gabriel R. P., QLISP: Parallel Processing in Lisp IEEE Software 6, pages. 5159, 1989
Gray S. L. Using Future to Exploit Parallelism in Lisp M.S. Thesis, Dept. Electrical Engineering and Computer Science, M.I.T. 1986
M. Girkar, C.D. Polychronopoulos The HTG: An Intermediate Representation for Programs Based on Control and Data Dependences CSRD TR1046, University of Illinois at Urbana-Champaign, Illinois, U.S.A., 1990
M. Girkar, C.D. Polychronopoulos Automatic Detection and Generation of Unstructured Parallelism in Ordinary Programs to appear in IEEE Transaction on Parallel & Distributed Processing, and CSRD TR, University of Illinois at Urbana-Champaign, Illinois, U.S.A., 1990
Halstead R.H. Jr., Implementation of Multilisp: LISP on a multiprocessor Conference Record of the 1984 ACM Symposium on LISP and Functional Programming, 1984, pages. 9–17.
R.H. Halstead Multilisp: a language for concurrent symbolic computations ACM TOPLAS, vol 7, 1985 pp 501–538
C.T. Haynes, D.P. Friedman, M. Wand Obtaining Coroutines with continuation Computer Languages, 11, 1986, pp. 143–153
W.L. Harrison Compiling Lisp for Evaluation on a Tightly Coupled Multiprocessor CSRD TR-565 University of Illinois at Urbana-Champaign, Illinois, U.S.A., 1986
W.L. Harrison The interprocedural Analysis and Automatic Parallelization of Scheme Programs Int. Journal of Lisp and Symbolic Computation, 2, 1989, pp. 179–396
Harrison W.L., Padua D. A. PARCEL: Project for the Automatic Restructuring and Concurrent Evaluation of LISP TR. 653, Dept. Computer Science, University of Illinois, 1987
D. Kuck The Structure of Computers & Computations John Wiley & Sons, Boston, Ma, 1978
M. Katz ParaTran: A Transparent, Transaction-Based Runtime Mechanism for Parallel Execution of Scheme Master Thesis, Dept. Electrical Engineering and Computer Science, M.I.T., 1986
Larus J.R., Hilfinger P.N., Restructuring LISP Programs for concurrent executions Symposium on Parallel Programming: Experience with Applications, Language and Systems. ACM, pages. 100–110, 1988
J.L. Larus Compiling Lisp Programs for Parallel Execution Int. Journal of Lisp and Symbolic Computation, 4, (1991), pp. 29–99
E. Mohr, D.A. Kranz, R.H. Halstead Lazy Task Creation: A Technique for Increasing the Granularity of Parallel Programs ACM Lisp Conf. On Lisp and Functional Languages, Nice, 1990, pp. 185–197
R.B. Osborne Speculative Computation in Multilisp: An Overview ACM Lisp Conf. On Lisp and Functional Languages, Nice, 1990, pp. 198–208
J.D. Pehoushek, J.S. Weening Low-cost process Creation and Dynamic Partiotion in QLISP, I Parallel Lisp: Languages and Systems Y. Ito, R.H. Halstead ed, Springer Verlag, Berlin, 1990, pp 182–199
C.D. Polychronopoulos Autoscheduling: Control and Data Flow Come Together CSRD TR-1058 University of Illinois at Urbana-Champaign, Illinois, U.S.A., 1990
O. Shivers Control Flow Analysis in Scheme SIGPLAN Conf on Language Design and Implementation, Atlanta, Georgia, 1988, pp 164–174
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1992 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Furnari, M., Polychronopoulos, C. (1992). Run-time management of Lisp parallelism and the Hierarchical Task Graph program representation. In: Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1991. Lecture Notes in Computer Science, vol 589. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0038670
Download citation
DOI: https://doi.org/10.1007/BFb0038670
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-55422-6
Online ISBN: 978-3-540-47063-2
eBook Packages: Springer Book Archive