Abstract
This paper presents a method to eliminate parts of the overhead introduced by parallel constructs in EDS LISP, a parallel extension of Common Lisp. Futures support a declarative style of explicit parallel programming. In languages with futures there is no static distinction between data calculated locally and data calculated by another process. Hence before data can be accessed a dynamic accessibility check has to be done. If the data is not yet determined an implicit wait has to be performed. Checks are done even when all data objects are present.
An algorithm is presented which does away with a significant amount of these checks. It is a variant of (intra-procedural) abstract interpretation, up to some extend similar to strictness analysis. Unlike other approaches the presented approach copes with both functional and non-functional LISP. The algorithm has been implemented in Common Lisp. The benchmarks are promising.
Chapter PDF
Similar content being viewed by others
References
S. Abramsky, C. Hankin, editors: Abstract Interpretation of Declarative Languages, Ellis Horwood Series in Computers and Their Applications, 1987.
A. Aho, R. Sethi, J. Ullmann, Compilers: Principles, Techniques, and Tools, Addison-Wesley, 1986.
C.Clack, S. Peyton-Jones: Strictness Analysis: a Practical Approach, in Proceedings of the ACM Conference on Functional Languages and Computer Architecture 1985, LNCS 201.
C. Hammer, T. Henties: Parallel Lisp on a Distributed Machine, in EUROPAL Workshop on High Performance and Parallel Computing in Lisp, London, 1990.
R. Halstead: Multiplisp: A Language for Concurrent Symbolic Computation, in ACM Transactions on Programming Languages and Systems, October 1985.
D. Kranz, R. Halstead, Jr., E. Mohr: Mul-T: A High-Performance Parallel Lisp, in ACM Programming Language Design and Implementation, Portland, Oregon, June 1989.
S.Peyton-Jones, C.Clack: Finding Fixpoints in Abstract Interpretation, in [AbHa87].
S.Peyton-Jones, editor: The Implementation of Functional Programming Languages, Prentice Hall, 1987.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1992 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Knopp, J. (1992). Improving the performance of parallel LISP by compile time analysis. In: Kastens, U., Pfahler, P. (eds) Compiler Construction. CC 1992. Lecture Notes in Computer Science, vol 641. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-55984-1_25
Download citation
DOI: https://doi.org/10.1007/3-540-55984-1_25
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-55984-9
Online ISBN: 978-3-540-47335-0
eBook Packages: Springer Book Archive