Modern processors are designed to perform more tasks simultaneously, rather than to perform single tasks more quickly. These new multicore processors are powerful, but using that power is challenging; interesting problems often divide irregularly, requiring difficult and error-prone coordination among subtasks. Consequently, parallel programming is considered hard to learn and harder to do. Observationally Cooperative Multithreading (OCM) is a new approach. In programs written for cooperative multithreading (CM), subtasks take turns and execute one at a time. The CM model is well-known to rule out conflicts and to simplify programming. OCM takes these same programs but runs them on modern multicore machines, executing subtasks simultaneously when there are no conflicts. The result can be a speed and resource-utilization benefit with no extra complexity for programmers. Potentially, OCM could make concurrency more accessible to a broad audience, including introductory students. The research will develop OCM implementations using techniques such as Transactional Memory and Lock Inference, with the aim of fostering adoption of OCM by a large user community. Realistic benchmarks will be constructed to analyze the speed and scalability of OCM implementations, and to verify ease of programming in the OCM model.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Type
Standard Grant (Standard)
Application #
0917345
Program Officer
Anindya Banerjee
Project Start
Project End
Budget Start
2009-08-01
Budget End
2013-07-31
Support Year
Fiscal Year
2009
Total Cost
$308,875
Indirect Cost
Name
Harvey Mudd College
Department
Type
DUNS #
City
Claremont
State
CA
Country
United States
Zip Code
91711