Restructuring symbolic programs for concurrent execution on multiprocessors
Thesis/Dissertation
·
OSTI ID:6223301
CURARE, the program restructurer described in this dissertation, automatically transforms a sequential Lisp program into an equivalent concurrent program that executes on a multiprocessor. CURARE first analyzes a program to find its control and data dependences. This analysis is most difficult for references to structures connected by pointers. CURARE uses a new data-dependence algorithm, which finds and classifies these dependences. The analysis is conservative and may detect conflicts that do not arise in practice. A programmer can temper and refine its results with declarations. 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. A restructurer must know all dependences in order to preserve them. However, 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.
- Research Organization:
- California Univ., Berkeley, CA (USA)
- OSTI ID:
- 6223301
- Country of Publication:
- United States
- Language:
- English
Similar Records
Restructuring symbolic programs for concurrent execution on microprocessors
Curare: Restructuring lisp programs for concurrent execution
Parcel: Project for the Automatic Restructuring and Concurrent Evaluation of Lisp
Book
·
Sat Dec 31 23:00:00 EST 1988
·
OSTI ID:5291627
Curare: Restructuring lisp programs for concurrent execution
Book
·
Wed Dec 31 23:00:00 EST 1986
·
OSTI ID:5507738
Parcel: Project for the Automatic Restructuring and Concurrent Evaluation of Lisp
Technical Report
·
Wed Dec 31 23:00:00 EST 1986
·
OSTI ID:5734898