skip to main content
10.1145/2611462.2611496acmconferencesArticle/Chapter ViewAbstractPublication PagespodcConference Proceedingsconference-collections
research-article

The future(s) of shared data structures

Published: 15 July 2014 Publication History

Abstract

This paper considers how to use futures, a well-known mechanism to manage parallel computations, to improve the performance of long-lived, mutable shared data structures in large-scale multicore systems. We show that futures can enable type-specific optimizations such as combining and elimination, improve cache locality and reduce contention. To exploit these benefits in an effective way, however, it is important to define clear notions of correctness. We propose new extensions to linearizability appropriate for method calls that return futures as results. To illustrate the utility and trade-offs of these extensions, we describe implementations of three common data structures: stacks, queues, and linked lists, designed to exploit futures. Our experimental results show that optimizations enabled by futures lead to substantial performance improvements, in some cases up to two orders of magnitude, compared to well-known lock-free alternatives.

References

[1]
Bernstein, P., Hadzilacos, V., and Goodman, N. Concurrency Control and Recovery in Database Systems. Addison Wesley Publishing Company, 1987.
[2]
Calciu, I., Dice, D., Harris, T., Herlihy, M., Kogan, A., Marathe, V. J., and Moir, M. Message passing or shared memory: Evaluating the delegation abstraction for multicores. In Proceedings of OPODIS (2013), pp. 83--97.
[3]
Goodman, J. R., Vernon, M. K., and Woest, P. J. Efficient synchronization primitives for large-scale cache-coherent multiprocessors. In Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS) (1989), pp. 64--75.
[4]
Gottlieb, A., Lubachevsky, B. D., and Rudolph, L. Basic techniques for the efficient coordination of very large numbers of cooperating sequential processors. ACM Trans. Program. Lang. Syst. 5, 2 (Apr. 1983), 164--189.
[5]
Halstead, R. H. Multilisp: A Language for Concurrent Symbolic Computation. ACM Trans. Program. Lang. Syst. 7, 4 (Oct. 1985), 501--538.
[6]
Harris, T. L. A pragmatic implementation of non-blocking linked-lists. In Proceedings of the International Conference on Distributed Computing (DISC) (2001), pp. 300--314.
[7]
Hendler, D., Incze, I., Shavit, N., and Tzafrir, M. Flat combining and the synchronization-parallelism tradeoff. In Proceedings of ACM SPAA (2010), pp. 355--364.
[8]
Hendler, D., Shavit, N., and Yerushalmi, L. A scalable lock-free stack algorithm. J. Parallel Distrib. Comput. 70, 1 (2010), 1--12.
[9]
Herlihy, M., Lim, B.-H., and Shavit, N. Scalable concurrent counting. ACM Trans. Comput. Syst. 13, 4 (Nov. 1995), 343--364.
[10]
Herlihy, M., and Shavit, N. The Art of Multiprocessor Programming. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2008.
[11]
Herlihy, M. P., and Wing, J. M. Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12, 3 (July 1990), 463--492.
[12]
Lamport, L. How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs. IEEE Transactions on Computers C-28, 9 (Aug. 1979), 690--691.
[13]
Liskov, B., and Shrira, L. Promises: Linguistic support for efficient asynchronous procedure calls in distributed systems. In Proceedings of the ACM Conference on Programming Language Design and Implementation (PLDI) (1988), pp. 260--267.
[14]
Michael, M. M., and Scott, M. L. Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In Proceedings of the ACM Symposium on Principles of Distributed Computing (PODC) (1996), pp. 267--275.
[15]
Moir, M., Nussbaum, D., Shalev, O., and Shavit, N. Using elimination to implement scalable and lock-free fifo queues. In Proceedings of ACM SPAA (2005), pp. 253--262.
[16]
Scherer, W. N., and Scott, M. L. Nonblocking concurrent data structures with condition synchronization. In Proceedings of DISC (2004), pp. 174--187.
[17]
Shavit, N., and Touitou, D. Elimination trees and the construction of pools and stacks: Preliminary version. In Proceedings of the ACM Symposium on Parallel Algorithms and Architectures (SPAA) (1995), pp. 54--63.
[18]
Treiber, R. Systems Programming: Coping with Parallelism. Technical Report RJ 5118. IBM Almaden Research Center, 1986.
[19]
Welc, A., Jagannathan, S., and Hosking, A. Safe futures for java. In Proceedings of the ACM Conference on Object-oriented Programming, Systems, Languages, and Applications (OOPSLA) (2005), pp. 439--453.

Cited By

View all
  • (2024)A wait-free queue with polylogarithmic step complexityDistributed Computing10.1007/s00446-024-00471-737:4(309-334)Online publication date: 17-Aug-2024
  • (2023)A Wait-free Queue with Polylogarithmic Step ComplexityProceedings of the 2023 ACM Symposium on Principles of Distributed Computing10.1145/3583668.3594565(124-134)Online publication date: 19-Jun-2023
  • (2022)BQ: A Lock-Free Queue with BatchingACM Transactions on Parallel Computing10.1145/35127579:1(1-49)Online publication date: 23-Mar-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PODC '14: Proceedings of the 2014 ACM symposium on Principles of distributed computing
July 2014
444 pages
ISBN:9781450329446
DOI:10.1145/2611462
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 15 July 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. combining
  2. concurrent data structures
  3. elimination
  4. futures
  5. linearizability

Qualifiers

  • Research-article

Conference

PODC '14
Sponsor:

Acceptance Rates

PODC '14 Paper Acceptance Rate 39 of 141 submissions, 28%;
Overall Acceptance Rate 740 of 2,477 submissions, 30%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)13
  • Downloads (Last 6 weeks)1
Reflects downloads up to 17 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)A wait-free queue with polylogarithmic step complexityDistributed Computing10.1007/s00446-024-00471-737:4(309-334)Online publication date: 17-Aug-2024
  • (2023)A Wait-free Queue with Polylogarithmic Step ComplexityProceedings of the 2023 ACM Symposium on Principles of Distributed Computing10.1145/3583668.3594565(124-134)Online publication date: 19-Jun-2023
  • (2022)BQ: A Lock-Free Queue with BatchingACM Transactions on Parallel Computing10.1145/35127579:1(1-49)Online publication date: 23-Mar-2022
  • (2022)Future-Based Persistent Spatial Data Structure for NVM-Based Manycore MachinesIEEE Access10.1109/ACCESS.2022.321641010(114711-114724)Online publication date: 2022
  • (2022)Scalable NUMA-aware persistent B+-tree for non-volatile memory devicesCluster Computing10.1007/s10586-022-03766-126:5(2865-2881)Online publication date: 17-Nov-2022
  • (2021)Investigating the semantics of futures in transactional memory systemsProceedings of the 26th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/3437801.3441594(16-30)Online publication date: 17-Feb-2021
  • (2021)Towards Scalable Manycore-Aware Persistent B+- Trees for Efficient Indexing in Cloud Environments2021 IEEE International Conference on Autonomic Computing and Self-Organizing Systems Companion (ACSOS-C)10.1109/ACSOS-C52956.2021.00022(44-49)Online publication date: Sep-2021
  • (2020)Parallel determinacy race detection for futuresProceedings of the 25th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/3332466.3374536(217-231)Online publication date: 19-Feb-2020
  • (2019)Efficient race detection with futuresProceedings of the 24th Symposium on Principles and Practice of Parallel Programming10.1145/3293883.3295732(340-354)Online publication date: 16-Feb-2019
  • (2018)Unifying Concurrent Objects and Distributed TasksJournal of the ACM10.1145/326645765:6(1-42)Online publication date: 19-Nov-2018
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media