William C. Benton. Fast, Effective Program Analysis for Object-Level Parallelism. Ph.D. dissertation. University of Wisconsin–Madison, December 2008.
Multicore and multithreaded processors are ubiquitous. Applications in several domains, such as internet servers, scientific simulations, and high-end media creation tools, are generally capable of exploiting the concurrent contexts presented by these processors. However, the vast majority of client applications present sequential workloads that will not directly benefit from parallel hardware. In order for such applications to achieve high performance on such processors, they must be reimplemented as parallel applications.
Unfortunately, writing parallel software in mainstream programming languages is notoriously difficult. The thesis of this dissertation is that real-world client applications exhibit implicit thread-level parallelism because methods on distinct objects are often independent. We show that it is possible to identify this object-level parallelism statically via efficient, novel type-based program analyses to identify methods that are good candidates for safe parallel execution. In addition, we demonstrate that many methods that can be safely executed through object-level parallelism are substantial enough to constitute realistic parallel tasks.
My dissertation is copyrighted, but I have made it available for your personal use. Download the PDF (5349kb).