Award Abstract # 1253703
CAREER: Practical Language and System Support for Reliable Concurrent Software

NSF Org: CCF
Division of Computing and Communication Foundations
Recipient: OHIO STATE UNIVERSITY, THE
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 2013 = $174,442.00
FY 2014 = $90,541.00

FY 2015 = $93,546.00

FY 2016 = $96,676.00

FY 2017 = $99,938.00
History of Investigator:
  • Michael Bond (Principal Investigator)
    mikebond@cse.ohio-state.edu
Recipient Sponsored Research Office: Ohio State University
1960 KENNY RD
COLUMBUS
OH  US  43210-1016
(614)688-8735
Sponsor Congressional District: 03
Primary Place of Performance: Ohio State University
OH  US  43210-1063
Primary Place of Performance
Congressional District:
03
Unique Entity Identifier (UEI): DLWBSLWAJWR1
Parent UEI: MN4MDDMN8529
NSF Program(s): CSR-Computer Systems Research,
Software & Hardware Foundation,
PROGRAMMING LANGUAGES
Primary Program Source: 01001314DB NSF RESEARCH & RELATED ACTIVIT
01001415DB NSF RESEARCH & RELATED ACTIVIT

01001516DB NSF RESEARCH & RELATED ACTIVIT

01001617DB NSF RESEARCH & RELATED ACTIVIT

01001718DB NSF RESEARCH & RELATED ACTIVIT
Program Reference Code(s): 1045, 7354, 7943, 9251
Program Element Code(s): 735400, 779800, 794300
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.

(Showing: 1 - 10 of 11)
Aritra Sengupta, Man Cao, Michael D. Bond, and Milind Kulkarni "Legato: End-to-End Bounded Region Serializability Using Commodity Hardware Transactional Memory" CGO , 2017
Benjamin P. Wood Man Cao, Michael D. Bond, and Dan Grossman "Instrumentation Bias for Dynamic Data Race Detection" ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) , 2017
Donald E. Porter, Michael D. Bond, Indrajit Roy, Kathryn S. McKinley, and Emmett Witchel "Laminar: Practical Fine-Grained Decentralized Information Flow Control" ACM Transactions on Programming Languages and Systems (TOPLAS) , 2014
Jake Roemer, Kaan Genç, and Michael D. Bond "High-Coverage, Unbounded Sound Predictive Race Detection" ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) , 2018
Man Cao, Jake Roemer, Aritra Sengupta, and Michael D. Bond "Prescient Memory: Exposing Weak Memory Model Behavior by Looking into the Future" ISMM , 2016
Man Cao, Minjia Zhang, Aritra Sengupta, and Michael D. Bond "Drinking from Both Glasses: Combining Pessimistic and Optimistic Tracking of Cross-Thread Dependences" PPoPP , 2016
Man Cao, Minjia Zhang, Aritra Sengupta, Swarnendu Biswas, and Michael D. Bond "Hybridizing and Relaxing Dependence Tracking for Efficient Parallel Runtime Support" ACM Transactions on Parallel Computing , 2017
Minjia Zhang, Swarnendu Biswas, and Michael D. Bond "Avoiding Consistency Exceptions Under Strong Memory Models" ACM SIGPLAN International Symposium on Memory Management (ISMM) , 2017
Minjia Zhang, Swarnendu Biswas, and Michael D. Bond "Relaxed Dependence Tracking for Parallel Runtime Support" CC , 2016
Swarnendu Biswas, Man Cao, Minjia Zhang, Michael D. Bond, and Benjamin P. Wood "Lightweight Data Race Detection for Production Runs" CC , 2017
Swarnendu Biswas, Rui Zhang, Michael D. Bond, and Brandon Lucia "Rethinking Support for Region Conflict Exceptions" IEEE International Parallel and Distributed Processing Symposium (IPDPS) , 2019
(Showing: 1 - 10 of 11)

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.

Print this page

Back to Top of page