This talk presents a new analysis technique, commutativity analysis, that is designed to automatically parallelize a new class of computations: object-based computations that manipulate dynamic, linked data structures such as trees and graphs. In the first part of the talk, I will present the basic analysis technique, describe some extensions that are required to apply the technique to practical programs, and discuss how commutativity analysis differs from traditional analysis techniques for parallelizing compilers.
In the second part of the talk, I will discuss optimizations required to map the parallelized programs efficiently onto parallel machines. I will focus on synchronization optimizations for programs that use mutual exclusion synchronization. Although these optimizations were developed in the context of our prototype compiler, they are generally applicable to a wide range of parallel programs. I will present experimental results that characterize both the overall performance of several automatically parallelized benchmark programs and the performance impact of the synchronization optimizations on these programs.
Finally, I will briefly discuss potential applications of commutativity analysis to programs such as servers and migratory programs that have not traditionally been considered targets for automatic parallelization.
|
Modified: Jun 24, 1997
|
Current events
|
Your comments
and inquiries are welcome.