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.