JOURNAL ARTICLE

Compiling lisp programs for parallel execution

James R. Larus

Year: 1991 Journal:   LISP and Symbolic Computation Vol: 4 (1)Pages: 29-99   Publisher: Springer Science+Business Media

Abstract

Curare, the program restructurer described in this paper automatically transforms a sequential Lisp program into an equivalent concurrent program that runs on a multiprocessor. Data dependences constrain the program's concurrent execution because, in general, two conflicting statements cannot execute in a different order without affecting the program's result. Not all dependences are essential to produce the program's result.Curare attempts to transform the program so it computes its result with fewer conflicts. An optimized program will execute with less synchronization and more concurrency. Curare then examines loops in a program to find those that are unconstrained or lightly constrained by dependences. By necessity,Curare treats recursive functions as loops and does not limit itself to explicit program loops. Recursive functions offer several advantages over explicit loops since they provide a convenient framework for inserting locks and handling the dynamic behavior of symbolic programs. Loops that are suitable for concurrent execution are changed to execute on a set of concurrent server processes. These servers execute single loop iterations and therefore need to be extremely inexpensive to invoke. Restructured programs execute significantly faster than the original sequential programs. This improvement is large enough to attract programmers to a multiprocessor, particularly since it requires little effort on their part.

Keywords:
Computer science Lisp Programming language Concurrency Multiprocessing Set (abstract data type) Parallel computing Curare Inter-process communication Concurrent computing Synchronization (alternating current) Distributed computing

Metrics

14
Cited By
1.97
FWCI (Field Weighted Citation Impact)
62
Refs
0.88
Citation Normalized Percentile
Is in top 1%
Is in top 10%

Topics

Parallel Computing and Optimization Techniques
Physical Sciences →  Computer Science →  Hardware and Architecture
Software Testing and Debugging Techniques
Physical Sciences →  Computer Science →  Software
Real-Time Systems Scheduling
Physical Sciences →  Computer Science →  Hardware and Architecture

Related Documents

BOOK-CHAPTER

Execution of Common Lisp Programs in a Parallel Environment

Patrick F. McGeheartyEdward J. Krall

Kluwer international series in engineering and computer science Year: 1988 Pages: 51-62
BOOK-CHAPTER

Compiling Lisp

Peter Norvig

Elsevier eBooks Year: 1992 Pages: 784-833
JOURNAL ARTICLE

Restructuring Lisp programs for concurrent execution

James R. LarusPaul Hilfinger

Journal:   ACM SIGPLAN Notices Year: 1988 Vol: 23 (9)Pages: 100-110
© 2026 ScienceGate Book Chapters — All rights reserved.