Award Abstract # 1218695
CSR: Small: Making Software Transactional Memory More than a Research Toy

NSF Org: CNS
Division Of Computer and Network Systems
Recipient: OHIO STATE UNIVERSITY, THE
Initial Amendment Date: August 23, 2012
Latest Amendment Date: August 23, 2012
Award Number: 1218695
Award Instrument: Standard Grant
Program Manager: Marilyn McClure
mmcclure@nsf.gov
 (703)292-5197
CNS
 Division Of Computer and Network Systems
CSE
 Directorate for Computer and Information Science and Engineering
Start Date: September 1, 2012
End Date: August 31, 2016 (Estimated)
Total Intended Award Amount: $400,000.00
Total Awarded Amount to Date: $400,000.00
Funds Obligated to Date: FY 2012 = $400,000.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
Primary Program Source: 01001213DB NSF RESEARCH & RELATED ACTIVIT
Program Reference Code(s): 7354, 7923
Program Element Code(s): 735400
Award Agency Code: 4900
Fund Agency Code: 4900
Assistance Listing Number(s): 47.070

ABSTRACT

Now that computer technology appears to have reached the limit of Dennard scaling (increasing clock rates), software must become more parallel, to scale with hardware that provides more instead of faster cores. However, writing correct, scalable shared-memory concurrent programs is notoriously difficult. Transactional memory (TM) offers potential improvements over conventional shared-memory systems in programmability, reliability, and scalability. However, it has not lived up to its initial promise, primarily because no one has shown how to make it practical. Hardware manufacturers are reluctant to build hardware TM (HTM) into already-complex cache and memory subsystems, and software TM (STM) suffers from poor performance and weak semantics. This project seeks to advance the state of the art dramatically by investigating new research directions for making STM truly practical, by achieving high performance with strong semantics. The project tackles STM's key cost in existing work -- detecting and handling conflicting accesses -- using a novel mechanism that avoids synchronization at non-conflicting accesses.

Direct beneficial impacts of making widely available practical STM support include the ability to produce more reliable and scalable software systems, leading to advances in software for safety- and mission-critical systems. Widespread use of STM can help spur commercial development of hardware support for hybrid hardware-software TM, which requires practical STM support. The investigator's engagement with industrial researchers provides an avenue to enhance dissemination. Public distribution of STM implementations produced by this project provides a basis for further research and development. Several educational and outreach activities, including course projects, enhanced core course material, interactive presentations for a summer bridge program targeting minority undergraduate engineering majors, and recruiting events for prospective minority graduate students, aim to train a diverse group of programmers and researchers in developing future reliable, scalable software systems.

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 13)
Aritra Sengupta and Man Cao and Michael D. Bond and Milind Kulkarni "{Toward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization}" {ACM} International Conference on Principles and Practice of Programming in Java , 2015 , p.65--75
Biswas, Swarnendu and Zhang, Minjia and Bond, Michael D. and Lucia, Brandon "{Valor: Efficient, Software-Only Region Conflict Exceptions}" {ACM} Conference on Object-Oriented Programming, Systems, Languages, and Applications , 2015 , p.241--259 10.1145/2814270.2814292
Cao, Man and Zhang, Minjia and Sengupta, Aritra and Bond, Michael D. "{Drinking from Both Glasses: Combining Pessimistic and Optimistic Tracking of Cross-Thread Dependences}" {ACM SIGPLAN} Symposium on Principles and Practice of Parallel Programming , 2016 , p.20:1--20: 10.1145/2851141.2851143
Donald E. Porter, Michael D. Bond, Indrajit Roy, Kathryn S. McKinley, and Emmett Witchel "Practical Fine-Grained Information Flow Control Using Laminar" ACM Transactions on Programming Languages and Systems (TOPLAS) , 2014
Jipeng Huang and Michael D. Bond "{Efficient Context Sensitivity for Dynamic Analyses via Calling Context Uptrees and Customized Memory Management}" {ACM} Conference on Object-Oriented Programming, Systems, Languages, and Applications , 2013 , p.53--72
Man Cao and Jake Roemer and Aritra Sengupta and Michael D. Bond "{Prescient Memory: Exposing Weak Memory Model Behavior by Looking into the Future}" {ACM} International Symposium on Memory Management , 2016 , p.99--110 10.1145/2926697.2926700
Michael D. Bond and Milind Kulkarni and Man Cao and Meisam {Fathi Salmi} and Jipeng Huang "{Efficient Deterministic Replay of Multithreaded Executions in a Managed Language Virtual Machine}" {ACM} International Conference on Principles and Practice of Programming in Java , 2015 , p.90--101
Michael D. Bond and Milind Kulkarni and Man Cao and Minjia Zhang and Meisam {Fathi Salmi} and Swarnendu Biswas and Aritra Sengupta and Jipeng Huang "{Octet: Capturing and Controlling Cross-Thread Dependences Efficiently}" {ACM} Conference on Object-Oriented Programming, Systems, Languages, and Applications , 2013 , p.693--712
Porter, Donald E. and Bond, Michael D. and Roy, Indrajit and Mckinley, Kathryn S. and Witchel, Emmett "{Practical Fine-Grained Information Flow Control Using Laminar}" {ACM} Transactions on Programming Languages and Systems , v.37 , 2014 , p.4:1--4:51 10.1145/2638548
Sengupta, Aritra and Biswas, Swarnendu and Zhang, Minjia and Bond, Michael D. and Kulkarni, Milind "{Hybrid Static--Dynamic Analysis for Statically Bounded Region Serializability}" {ACM} International Conference on Architectural Support for Programming Languages and Operating Systems , 2015 , p.561--575 10.1145/2694344.2694379
Swarnendu Biswas and Jipeng Huang and Aritra Sengupta and Michael D. Bond "{DoubleChecker: Efficient Sound and Precise Atomicity Checking}" {ACM} Conference on Programming Language Design and Implementation , 2014 , p.28--39 10.1145/2594291.2594323
(Showing: 1 - 10 of 13)

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.

Now that computer technology appears to have reached the limit of Dennard scaling (increasing clock rates), software must become more parallel, to scale with hardware that provides more instead of faster cores. However, writing correct, scalable shared-memory concurrent programs is notoriously difficult. Transactional memory (TM) offers potential improvements over conventional shared-memory systems in programmability, reliability, and scalability. However, it has not lived up to its initial promise, primarily because no one has shown how to make it practical. Hardware manufacturers are reluctant to build unbounded hardware TM (HTM) into already-complex cache and memory subsystems, and software TM (STM) suffers from poor performance and weak semantics. This project seeks to advance the state of the art dramatically by investigating new research directions for making STM truly practical, by achieving high performance with strong semantics. The project aims to not only advance STM but also develop runtime support that is applicable to providing strong semantic guarantees, both for transactional and non-transactional shared-memory programs.

The project provides the following contributions. (1) It develops a novel STM called LarkTM that has low overhead, tunable scalability, and strong semantic guarantees. (2) It demonstrates how to exploit asynchrony to enhance STM and other software systems that provide atomicity and determinism guarantees. (3) The project introduces support for a memory model based on snapshot isolation of synchronization-free regions, in order to balance efficiency and semantic guarantees with availability. (4) It introduces novel analyses that detect data races -- which are a key source of errors in software systems -- that are efficient enough for always-on use in production systems. Each of these contributions advances the state of the art, by providing runtime support on commodity systems with better performance than existing work.

Broader impacts of the project include the ability to produce more reliable and scalable software systems, leading to advances in software for safety- and mission-critical systems. The project's software implementations are publicly available, providing a basis for further research and development. Mentoring, educational, and outreach activities have helped to train a diverse group of computer science students and researchers in developing future reliable, scalable software systems.


Last Modified: 11/22/2016
Modified by: Michael Bond

Please report errors in award information by writing to: awardsearch@nsf.gov.

Print this page

Back to Top of page