Prakash Prabhu will present his preFPO on Tuesday September 18 at 11AM in
Room 402.  The members of his committee are:  David August, advisor; David
Walker and JP Singh, readers; Margaret Martonosi and Kai Li, nonreaders. 
Everyone is invited to attend his talk. His abstract follows below.
--------------------

Semantic Language Extensions for Implicit Parallel Programming

Several emerging fields of science of engineering are increasingly
characterized by computationally intensive programs that generate
exponential amounts of data. Without parallelization, such programs do
not benefit from the increasing core counts available in today’s chip
multiprocessors. However, it is widely perceived that writing correct
and well performing parallel programs is an extremely hard problem. In
order to understand the challenges faced by scientific programmers in
effectively leveraging parallel computation, this dissertation
presents an in-depth field study of the practice of computational
science.

Based on the results of the field study, two new implicit parallel
programming (IPP) solutions are proposed. IPP solutions offer the best
of both automatic and explicit parallelization.  With IPP, artificial
constraints imposed by sequential models for automatic parallelization
are overcome by use of semantic programming extensions that do not
sacrifice the ease of sequential programming. These extensions are
exploited by transformation tools to synthesize a correct parallel
program without requiring enormous manual programming effort
associated with explicit parallelization.

The first IPP solution, Commutative Set, generalizes existing notions
of semantic commutativity. It allows a programmer to expressively
relax execution orders prohibited under a sequential programming model
and enables multiple parallelism forms without additional parallelism
constructs. The second IPP solution, WeakC, provides language
extensions to weaken semantics of sequential data structures, and
dynamically optimizes a parallel configuration of these data
structures via a combined compiler-runtime system.

Both Commutative Set and WeakC have been implemented within the
clang/LLVM compiler framework, and are evaluated on several real-world
applications running on real hardware, including some that are
actively used by several scientists in their day-to-day research.
Based on experimental results, this dissertation demonstrates the
effectiveness of the proposed techniques.