
NSF Org: |
CCF Division of Computing and Communication Foundations |
Recipient: |
|
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: |
|
History of Investigator: |
|
Recipient Sponsored Research Office: |
77 MASSACHUSETTS AVE CAMBRIDGE MA US 02139-4301 (617)253-1000 |
Sponsor Congressional District: |
|
Primary Place of Performance: |
MA US 02139-4301 |
Primary Place of
Performance Congressional District: |
|
Unique Entity Identifier (UEI): |
|
Parent UEI: |
|
NSF Program(s): | Software & Hardware Foundation |
Primary Program Source: |
|
Program Reference Code(s): |
|
Program Element Code(s): |
|
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.
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.