Abstract

In this thesis we introduce the CSSAME form, a new analysis framework for explicitly parallel programs that recognizes three fundamental elements of a parallel program: (1) parallel structure, (2) memory semantics, and (3) synchronization structure. By modeling these three elements in a single unified framework, a compiler can better exploit optimization opportunities in parallel programs. We also develop a new synchronization analysis technique to detect mutual exclusion synchronization patterns that cannot be analyzed with existing techniques. We introduce the notion of multiple-entry/multiple-exit mutex regions and provide methods for validating mutual exclusion synchronization at compile-time. This analysis provides the basis for the elimination of superfluous memory conflict edges in the program's flowgraph, leading to a simpler representation and allowing more optimization opportunities. We integrate reaching definition analysis and dead-code elimination into the CSSAME framework. Furthermore, we introduce new optimization techniques to reduce mutual exclusion synchronization overhead: Lock Picking, Lock Independent Code Motion and Mutex Body Localization. We study the effects of these transformations in the context of SPLASH and Java applications, prove their correctness, and provide algorithms that implement them.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call