skip to main content
article
Free access

Restructuring Lisp programs for concurrent execution

Published: 01 January 1988 Publication History

Abstract

This paper describes the techniques that the program transformation system CURARE uses to restructure Lisp programs for concurrent execution in multiprocessor Lisp systems and discusses the problems inherent in producing concurrent programs in a flexible and dynamic programming language such as Lisp.
CURARE's overall organization is similar to other program restructuring systems: it detects potential conflicts between statements in a program, then transforms the program to improve its concurrent performance, and finally inserts synchronization to ensure the program's concurrent behavior. However, the language and programs that CURARE transforms are very different from the FORTRAN programs that are the traditional targets of program restructuring and so CURARE requires new algorithms and approaches, which are described in this paper.

References

[1]
Donald C. Allen, Seth A. Steinberg, and Lawrence A. Stabile. Recent Developments in Butterfly Lisp. In Proceedings of AAAI-87 Sixlh National Conference on Artificial Intelligence, pages 2--6, July 1987.
[2]
A. J. Bernsteln. Analysis of Programs for Parallel Processing. IEEE Transaelions on Eleelronic Computers, EC-15(5):757-763, October 1966.
[3]
R. S. Bird. Notes on Recursion Elimination. Communications of the A CM, 20(6):434-439, June 1977.
[4]
Michael Burke and Ron Cytron. lnterprocedural Dependence Analysis and Parallelization. in Proceedings of the A CM SIGPLAN '86 Symposium on Compiler Cons~ructiou~ pages 162-175, June 1986.
[5]
J. Darlington and R. M. Burstall. A System which Automatically Improves Programs. A cia Informatica, 6(1):41-60, 1976.
[6]
Jeanne Ferrante, Karl J. Ottenstein, and Joe D. Warren. The Program Dependence Graph and its Use in Optimization. A CM Transactions on Programming Languages and Systems, 9(3):319- 349, July 1987.
[7]
David K. Gifford, Pierre Jouvelot, John M. Lucassen, and Mark A. Sheldon. FX-87 Reference Manual. Technical Report MIT/LCS/TR-407, MIT Laboratory for Computer Science, September 1987.
[8]
Sharon L. Gray. Using Futures to Exploit Parallelism in Lisp. Master's thesis, MIT, February 1986. MS report.
[9]
Robert H. ttalstead, Jr. Multilisp: A Language for Concurrent Symbolic Computation. A CM Transactions on Programming Languages and Systems, 7(4):501-538, October 1985.
[10]
W. Ludwell Harrison, III and David A. Padua. Representing S-Expressions for the Efficient Evaluation of Lisp on Parallel Processors. In Proceedings of the 1986 International Conference on Parallel Processing, pages 703-710, August 1986.
[11]
Susan Horwitz, Jan Prins, and Thomas Reps. Integrating Non-Interfering Versions of Programs. In Conference Record of the Fifteenth Annual A CM Symposium on Principles of Programming Languages, p~ges 133-145, San Diego, California, January 1988.
[12]
G~rard Huet and Bernard Lang. Proving and Applying Program Transformations Expressed with Second-Order Patterns. Acta Iuformatica, 11(1):31-55, 1978.
[13]
Morris J. Katz. ParaTran: A Transparent, Transaction Based Runtime Mechanism for Par: allel Execution of Scheme. Master's thesis, MIT, June 1986.
[14]
Tom Knight. An Architecture for Mostly Functional Languages. In Proceedings of the 1986 A CM Conference on LISP and Functional Programming, pages 105-112, Cambridge, Massachusetts, August 1986.
[15]
Clyde P. Kruskal, Larry Rudolph, and Marc Snir. The Power of Parallel Prefix. IEEE Transactions on Computers, C-34(10):965-968, October 1985.
[16]
James R. Larus and Paul N. Hilfinger. Detecting Conflicts Between Structure A'ccesses. In Proceedings of the SIGPLAN '88 Conference on Programming Language Design and Implementation, June 1988. To appear.
[17]
Samuel P. Midkiff and David A. Padua. Compiler Algorithms for Synchronization. IEEE Transaclions on Compuiers, C-36(12):1485- 1495, December 1987.
[18]
Eugene W. Myers. A Precise Inter-Procedural Data Flow Algorithm. in Conference Record of ~he Eighth Annual A CM Symposium on Principles of Programming Languages, pages 219-230, :I anuary 1981.
[19]
David A. Padua, David J. Kuck, and Duncan H. Lawrie. High-Speed Multiprocessors and Compilation Techniques. IEEE Transactions on Computers, C-29(9):763-776, September 1980.
[20]
Guy L. Steele Jr. and W. Daniel Hillis. Connection Machine LISP" Fine-Grained Parallel Symbolic Processing. In Proceedings of the 1986 ACM Conference on LISP and Functional Programming, pages 279-297, Cambridge~ Massachusetts, August 1986.
[21]
Michael :I. Wolfe. Optimizing Supercompilers for Supercomputers. Technical Report UIUCDCS- R-82-1105, Dept. of Computer Science, Univ. of Illinois at Urbana-Champaign, October 1982. PhD dissertation.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 23, Issue 9
Proceedings of the ACM/SIGPLAN PPEALS 1988
Sept. 1988
246 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/62116
Issue’s Table of Contents
  • cover image ACM Conferences
    PPEALS '88: Proceedings of the ACM/SIGPLAN conference on Parallel programming: experience with applications, languages and systems
    January 1988
    246 pages
    ISBN:0897912764
    DOI:10.1145/62115
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 January 1988
Published in SIGPLAN Volume 23, Issue 9

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)89
  • Downloads (Last 6 weeks)12
Reflects downloads up to 06 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media