Award Abstract # 1217921
SHF: Small: Multicore Data-Structures: Relaxed, Flat, and Randomized

NSF Org: CCF
Division of Computing and Communication Foundations
Recipient: MASSACHUSETTS INSTITUTE OF TECHNOLOGY
Initial Amendment Date: July 3, 2012
Latest Amendment Date: July 3, 2012
Award Number: 1217921
Award Instrument: Standard 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: August 1, 2012
End Date: July 31, 2016 (Estimated)
Total Intended Award Amount: $500,000.00
Total Awarded Amount to Date: $500,000.00
Funds Obligated to Date: FY 2012 = $500,000.00
History of Investigator:
  • Nir Shavit (Principal Investigator)
    shanir@csail.mit.edu
Recipient Sponsored Research Office: Massachusetts Institute of Technology
77 MASSACHUSETTS AVE
CAMBRIDGE
MA  US  02139-4301
(617)253-1000
Sponsor Congressional District: 07
Primary Place of Performance: Massachusetts Institute of Technology
MA  US  02139-4301
Primary Place of Performance
Congressional District:
07
Unique Entity Identifier (UEI): E2NYLCDML6V1
Parent UEI: E2NYLCDML6V1
NSF Program(s): Software & Hardware Foundation
Primary Program Source: 01001213DB NSF RESEARCH & RELATED ACTIVIT
Program Reference Code(s): 7923, 7943
Program Element Code(s): 779800
Award Agency Code: 4900
Fund Agency Code: 4900
Assistance Listing Number(s): 47.070

ABSTRACT

Most multicore data structures being designed and used in parallel software today are concurrent versions of the sequential data structures of years past. They continue to work reasonably well because the level of parallelism offered by mainstream multicore machines is still low. As machines grow in size, however, the limitations of these traditional structures will become clear: they have inherent sequential bottlenecks, require tight synchronization, and are not easily distributed. This project will develop new classes of parallel data structures that combine relaxed specifications with highly decentralized randomized implementations, overcoming the drawbacks of existing structures and providing a better fit with tomorrow's massively parallel many-core machine designs.

This research will combine theoretical algorithmic work with empirical evaluation on real machines and applications, and will result in a library of concurrent data structures and a collection of design approaches and specification methodologies. Commercial software developers are in desperate need of data structures that scale while still remaining easy to understand and modify. Making this project's developed structures widely available will greatly help in making tomorrow's applications, whether they run on a cell phone or on a server in the cloud, make full use of the parallelism offered by multicore technology.

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.

David Dice, Virendra J. Marathe, Nir Shavit "Lock Cohorting: A General Technique for Designing NUMA Locks" ACM Transactions on Parallel Computing - Special Issue on PPoPP 2012 , v.1 , 2015 , p.13.1 10.1145/2716343
Dice, D., Marathe, V.J. and Nir Shavit "Lock Cohorting: A General Technique for Designing NUMA Locks" ACM Trans. Parallel Comput. , v.1 , 2015

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.

The move to multicore processors as our standard computing platform will force major changes in the way we design parallel software, and in particular in the way we design and use concurrent data structures. The goal of our research was to develop new concurrent data structures, not as lock-based or lock-free versions of sequential data structures, but rather from scratch as high throughput concurrent structures. We reevaluated the way in which concurrent data struc-tures are specied, implemented, and used in parallel programs. We then developed new types of relaxed shared concurrent objects: objects that have relaxed specications for which we then developed decentralized randomized implementations that are scalable since they have low overall communication and memory access rates.

We developed a collection of data structures solving a variety of tasks. The SkipTrie, a low-depth concurrent search structure that allows fast randomized predecessor queries access without rebalancing. The Leaplist: a skiplist stype randomized concurrent data structrue using hardware transactions that allows efficient range queries.  We also developed a new randomized Loose Renaming algorithm that takes only O(log log n) time to rename n items. We developed a new types of NUMA-aware reader-writer locks that allow for better scalaibility in concurrent data structure design. We develoepd the LevelArray: a fast, long-lived renaming algorithm. We proved mathematically that many lock-free concurrent algorithms are wait-free in practice without the need to restucture them. This introduces major potential saving in the cost of designing concurrent data structures, as programmers can avoid the overhead of wait-free algorithm design and still get all its benefits from lock-free ones. Finally, we developed the SprayList: a scalable relaxed priority queue based on randomization. For most of these data structures we provided code, available on the internet for public use. 

We belive that we have clearly shown that one can develop competitive concurrent algorithms, ones that greatly improve over traditional data structures parallelized using locks. The key techniques we developed exposed the crucial role of randomization and the use of relaxed specifications. 

Commercial software developers are in desperate need of data structures that scale, and teh availability of structures and techniques developed in the project available to them will greatly help in making applications make full use of the parallelism offered by multicore machines. 

 


Last Modified: 11/15/2016
Modified by: Nir Shavit

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

Print this page

Back to Top of page