
NSF Org: |
CCF Division of Computing and Communication Foundations |
Recipient: |
|
Initial Amendment Date: | March 7, 2013 |
Latest Amendment Date: | March 27, 2017 |
Award Number: | 1253703 |
Award Instrument: | Continuing Grant |
Program Manager: |
Anindya Banerjee
abanerje@nsf.gov (703)292-7885 CCF Division of Computing and Communication Foundations CSE Directorate for Computer and Information Science and Engineering |
Start Date: | March 1, 2013 |
End Date: | February 28, 2019 (Estimated) |
Total Intended Award Amount: | $555,143.00 |
Total Awarded Amount to Date: | $555,143.00 |
Funds Obligated to Date: |
FY 2014 = $90,541.00 FY 2015 = $93,546.00 FY 2016 = $96,676.00 FY 2017 = $99,938.00 |
History of Investigator: |
|
Recipient Sponsored Research Office: |
1960 KENNY RD COLUMBUS OH US 43210-1016 (614)688-8735 |
Sponsor Congressional District: |
|
Primary Place of Performance: |
OH US 43210-1063 |
Primary Place of
Performance Congressional District: |
|
Unique Entity Identifier (UEI): |
|
Parent UEI: |
|
NSF Program(s): |
CSR-Computer Systems Research, Software & Hardware Foundation, PROGRAMMING LANGUAGES |
Primary Program Source: |
01001415DB NSF RESEARCH & RELATED ACTIVIT 01001516DB NSF RESEARCH & RELATED ACTIVIT 01001617DB NSF RESEARCH & RELATED ACTIVIT 01001718DB NSF RESEARCH & RELATED ACTIVIT |
Program Reference Code(s): |
|
Program Element Code(s): |
|
Award Agency Code: | 4900 |
Fund Agency Code: | 4900 |
Assistance Listing Number(s): | 47.070 |
ABSTRACT
Over the past several decades, computer system performance has grown exponentially, enabling progress on key problems in science, engineering, health, and other areas. Owing to power, heat, and wire length limitations, however, microprocessors are now adding more, instead of faster, cores with each successive generation. As a result, general-purpose software must become more concurrent to see continued performance gains. Unfortunately, writing and debugging shared-memory concurrent software is notoriously difficult. A key problem is that most shared-memory programming languages and software systems do not provide good support for correct concurrent execution. They lack such support because all known approaches are impractical. This project aims to provide practical support for concurrency correctness in commodity systems. It develops low-overhead, software-only approaches that execute on existing commodity hardware. These approaches help programmers write and debug more reliable, scalable software, and to make software more reliable automatically by eliminating whole classes of errors. These benefits have the potential to enable society to continue to rely on software systems for increasingly complex, critical tasks. Furthermore, the project includes educational and outreach activities that help educate students in concurrent software systems, enhance dissemination of the ideas and outcomes, and broaden participation in computer science.
The project develops practical, always-on dynamic checking and enforcement of key concurrency correctness properties: atomicity, sequential consistency, and multithreaded determinism. Existing approaches are impractical because custom hardware-based approaches are unrealistic, and software-based approaches slow programs unacceptably. The project builds on preliminary work on an efficient concurrency control mechanism that elides expensive synchronization from non-conflicting accesses, which are the vast majority of accesses. Developing new analyses and systems presents significant new challenges, both to apply the novel concurrency control mechanism and to make other aspects of these analyses and systems efficient enough for production systems. For example, precise conflict detection must track prior accesses and contend with imprecision inherent to the concurrency control mechanism. The project aims to make the analyses and systems both practical and flexible, which requires systematically investigating how to reduce the costs of conflicting and non-conflicting accesses. Expected contributions are the first practical always-on atomicity checker, the first practical multithreaded record & replay system, the first practical sequential consistency checker, and the first practical system providing multithreaded system determinism. In addition to broader impacts, the contributions have the potential to enable new research on efficient software-based analyses and systems that support concurrency correctness.
PUBLICATIONS PRODUCED AS A RESULT OF THIS RESEARCH
Note:
When clicking on a Digital Object Identifier (DOI) number, you will be taken to an external
site maintained by the publisher. Some full text articles may not yet be available without a
charge during the embargo (administrative interval).
Some links on this page may take you to non-federal websites. Their policies may differ from
this site.
PROJECT OUTCOMES REPORT
Disclaimer
This Project Outcomes Report for the General Public is displayed verbatim as submitted by the Principal Investigator (PI) for this award. Any opinions, findings, and conclusions or recommendations expressed in this Report are those of the PI and do not necessarily reflect the views of the National Science Foundation; NSF has not approved or endorsed its content.
For more than a decade, computer chip manufacturers have focused on developing chips with more computing cores instead of faster cores, because of fundamental limitations such as heat dissipation that limit the ability to speed up individual cores. While these cores provide more computing power in theory, in practice it is difficult to develop, debug, and deploy parallel software that can leverage all of the extra computing power while also behaving correctly.
The project team addressed this challenge by developing, implementing, and evaluating new approaches for analyzing, debugging, and automatically improving the correctness and performance of parallel software. Importantly, all of the team's approaches work on off-the-shelf (commodity) hardware, rather than relying on custom (non-existent) hardware, allowing the approaches to be used in current systems. Overall, the project significantly advanced the state of the art by demonstrating a variety of approaches that are substantially faster than prior work's approaches, often making a qualitative difference by introducing an approach that is practical in a setting in which it was previously impractical.
The team developed a new approach for tracking communicating memory accesses efficiently, and designed a variety of approaches on top of it including multithreaded record & replay and an atomicity violation detector. The team developed new approaches for detecting a common kind of concurrency bug called a data race and for inferring the potential erroneous behaviors that a data race can cause. The team made significant contributions in the area of predictive data race detectors, which detect more data races than traditional race detectors but at much higher cost in prior work; the team showed how to make predictive race detectors more powerful while performing nearly the same as traditional race detectors.
The team published in high-impact venues and made the source code for their implementations publicly available. Seven PhD students were trained while working on the project, and the four who have so far graduated now hold impactful research and industry positions. The project impacted additional students through the research and topics being incorporated into programming languages and special topics courses taught by the PI.
The project's technical contributions have advanced the fields of programming languages and computing systems, by demonstrating new and better approaches for analyzing and improving parallel software. The potential impact of these contributions is to enable faster and more reliable computing systems, leading to improvements in the many areas that rely on computing, from transportation to health to communication.
Last Modified: 06/29/2019
Modified by: Michael Bond
Please report errors in award information by writing to: awardsearch@nsf.gov.