While multi-core processor designs allow peak performance to track Moore's law, they introduce new challenges for software developers. Explicitly multi-threaded programs generally take longer to develop, test, debug, and verify than sequential programs with equivalent functionality. Implicit parallelization, on the other hand, allows software engineers to develop parallel algorithms and applications in environments that provide sequential semantics, like the C programming language. System tools convert the parallel algorithms into a set of threads partitioned appropriately for a particular parallel machine organization. The resulting parallel programs are easier and faster to develop, debug, and maintain, because the programmer can request a meaningful and well defined program state at any point of execution. Because error checking code, code reuse, and variable scoping interfere with naive parallelization, this work will investigate system tools that perform reactive and speculative transformations to reduce the tension between application robustness and parallelization.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Application #
0746910
Program Officer
Sol J. Greenspan
Project Start
Project End
Budget Start
2008-05-01
Budget End
2010-08-31
Support Year
Fiscal Year
2007
Total Cost
$159,865
Indirect Cost
Name
University of Illinois Urbana-Champaign
Department
Type
DUNS #
City
Champaign
State
IL
Country
United States
Zip Code
61820