Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2612669.2612687acmconferencesArticle/Chapter ViewAbstractPublication PagesspaaConference Proceedingsconference-collections
research-article

Phase-concurrent hash tables for determinism

Published: 21 June 2014 Publication History

Abstract

We present a deterministic phase-concurrent hash table in which operations of the same type are allowed to proceed concurrently, but operations of different types are not. Phase-concurrency guarantees that all concurrent operations commute, giving a deterministic hash table state, guaranteeing that the state of the table at any quiescent point is independent of the ordering of operations. Furthermore, by restricting our hash table to be phase-concurrent, we show that we can support operations more efficiently than previous concurrent hash tables. Our hash table is based on linear probing, and relies on history-independence for determinism.
We experimentally compare our hash table on a modern 40-core machine to the best existing concurrent hash tables that we are aware of (hopscotch hashing and chained hashing) and show that we are 1.3--4.1 times faster on random integer keys when operations are restricted to be phase-concurrent. We also show that the cost of insertions and deletions for our deterministic hash table is only slightly more expensive than for a non-deterministic version that we implemented. Compared to standard sequential linear probing, we get up to 52 times speedup on 40 cores with dual hyper-threading. Furthermore, on 40 cores insertions are only about 1.3 times slower than random writes (scatter). We describe several applications which have deterministic solutions using our phase-concurrent hash table, and present experiments showing that using our phase-concurrent deterministic hash table is only slightly slower than using our non-deterministic one and faster than using previous concurrent hash tables, so the cost of determinism is small.

References

[1]
D. A. Alcantara, A. Sharf, F. Abbasinejad, S. Sengupta, M. Mitzenmacher, J. D. Owens, and N. Amenta. Real-time parallel hashing on the GPU. ACM Trans. Graph., 28(5), 2009.
[2]
G. E. Blelloch, P. Cheng, and P. B. Gibbons. Scalable room synchronizations. Theory Comput. Syst., 36(5):397--430, 2003.
[3]
G. E. Blelloch, J. T. Fineman, P. B. Gibbons, and J. Shun. Internally deterministic algorithms can be fast. In Proceedings of Principles and Practice of Parallel Programming, pages 181--192, 2012.
[4]
G. E. Blelloch and D. Golovin. Strongly history-independent hashing with applications. In IEEE Symposium on Foundations of Computer Science, pages 272--282, 2007.
[5]
R. D. Blumofe and C. E. Leiserson. Scheduling multithreaded computations by work stealing. J. ACM, 46(5):720--748, Sept. 1999.
[6]
R. L. Bocchino, V. S. Adve, S. V. Adve, and M. Snir. Parallel programming must be deterministic by default. In Usenix HotPar, 2009.
[7]
D. Chakrabarti, Y. Zhan, and C. Faloutsos. R-MAT: A recursive model for graph mining. In SIAM International Conference on Data Mining, pages 442--446, 2004.
[8]
J. Devietti, B. Lucia, L. Ceze, and M. Oskin. DMP: Deterministic shared memory multiprocessing. In Architectural Support for Programming Languages and Operating Systems, pages 85--96, 2009.
[9]
C. S. Ellis. Concurrency in linear hashing. ACM Trans. Database Syst., 12(2):195--217, 1987.
[10]
B. Fan, D. G. Andersen, and M. Kaminsky. MemC3: compact and concurrent memcache with dumber caching and smarter hashing. In Proceedings of the 10th USENIX Conference on Networked Systems Design and Implementation, pages 371--384, 2013.
[11]
H. Gao, J. F. Groote, and W. H. Hesselink. Lock-free dynamic hash tables with open addressing. Distributed Computing, 18(1):21--42, 2005.
[12]
M. Greenwald. Two-handed emulation: how to build non-blocking implementations of complex data-structures using DCAS. In Principles of Distributed Computing, pages 260--269, 2002.
[13]
J. D. Hartline, E. S. Hong, A. E. Mohr, W. R. Pentney, and E. Rocke. Characterizing history independent data structures. Algorithmica, pages 57--74, 2005.
[14]
M. Herlihy and N. Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann, 2012.
[15]
M. Herlihy, N. Shavit, and M. Tzafrir. Hopscotch hashing. In International Symposium on Distributed Computing, pages 350--364, 2008.
[16]
M. Hsu and W.-P. Yang. Concurrent operations in extendible hashing. In Proceedings of Very Large Data Bases, pages 241--247, 1986.
[17]
G. Karypis and V. Kumar. A fast and high quality multilevel scheme for partitioning irregular graphs. SIAM J. Sci. Comput., 20(1):359--392, 1998.
[18]
E. Kim and M.-S. Kim. Performance analysis of cache-conscious hashing techniques for multi-core CPUs. International Journal of Control and Automation, 6(2):121--134, Apr. 2013.
[19]
V. Kumar. Concurrent operations on extendible hashing and its performance. Commun. ACM, 33(6):681--694, 1990.
[20]
D. Lea. Hash table util.concurrent.concurrenthashmap in java.util.concurrent the Java Concurrency Package.
[21]
X. Li, D. G. Anderson, M. Kaminsky, and M. J. Freedman. Algorithmic improvements for fast concurrent cuckoo hashing. In EuroSys, 2014.
[22]
D. R. Martin and R. C. Davis. A scalable non-blocking concurrent hash table implementation with incremental rehashing. Unpublished manuscript, 1997.
[23]
M. M. Michael. High performance dynamic lock-free hash tables and list-based sets. In Symposium on Parallelism in Algorithms and Architectures, pages 73--82, 2002.
[24]
M. Naor and V. Teague. Anti-persistence: history independent data structures. In Symposium on Theory of Computing, pages 492--501, 2001.
[25]
M. Olszewski, J. Ansel, and S. Amarasinghe. Kendo: Efficient deterministic multithreading in software. In Architectural Support for Programming Languages and Operating Systems, pages 97--108, 2009.
[26]
R. Pagh and F. F. Rodler. Cuckoo hashing. J. Algorithms, 51(2):122--144, 2004.
[27]
C. Purcell and T. Harris. Non-blocking hashtables with open addressing. In International Symposium on Distributed Computing, pages 108--121, 2005.
[28]
O. Shalev and N. Shavit. Split-ordered lists: Lock-free extensible hash tables. J. ACM, 53(3):379--405, 2006.
[29]
J. Shun, G. E. Blelloch, J. T. Fineman, and P. B. Gibbons. Reducing contention through priority updates. In Symposium on Parallelism in Algorithms and Architectures, pages 152--163, 2013.
[30]
J. Shun, G. E. Blelloch, J. T. Fineman, P. B. Gibbons, A. Kyrola, H. V. Simhadri, and K. Tangwongsan. Brief announcement: the Problem Based Benchmark Suite. In Symposium on Parallelism in Algorithms and Architectures, pages 68--70, 2012.
[31]
J. Shun, L. Dhulipala, and G. E. Blelloch. A simple and practical linear-work parallel algorithm for connectivity. In Symposium on Parallelism in Algorithms and Architectures, 2014.
[32]
G. L. Steele Jr. Making asynchronous parallelism safe for the world. In ACM POPL, pages 218--231, 1990.
[33]
J. Triplett, P. E. McKenney, and J. Walpole. Resizable, scalable, concurrent hash tables via relativistic programming. In Proceedings of the USENIX Annual Technical Conference, 2011.
[34]
S. van der Vegt. A concurrent bidirectional linear probing algorithm. In 15th Twente Student Conference on Information Technology, 2011.
[35]
S. van der Vegt and A. Laarman. A parallel compact hash table. In Proceedings of the 7th International Conference on Mathematical and Engineering Methods in Computer Science, 2011.
[36]
W. E. Weihl. Commutativity-based concurrency control for abstract data types. IEEE Trans. Computers, 37(12):1488--1505, 1988.

Cited By

View all
  • (2024)History-Independent Concurrent ObjectsProceedings of the 43rd ACM Symposium on Principles of Distributed Computing10.1145/3662158.3662814(14-24)Online publication date: 17-Jun-2024
  • (2024)Teaching Parallel Algorithms Using the Binary-Forking Model2024 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)10.1109/IPDPSW63119.2024.00080(346-351)Online publication date: 27-May-2024
  • (2023)Efficient Parallel Functional Programming with EffectsProceedings of the ACM on Programming Languages10.1145/35912847:PLDI(1558-1583)Online publication date: 6-Jun-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SPAA '14: Proceedings of the 26th ACM symposium on Parallelism in algorithms and architectures
June 2014
356 pages
ISBN:9781450328210
DOI:10.1145/2612669
  • General Chair:
  • Guy Blelloch,
  • Program Chair:
  • Peter Sanders
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: 21 June 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. applications
  2. determinism
  3. hash table

Qualifiers

  • Research-article

Funding Sources

Conference

SPAA '14

Acceptance Rates

SPAA '14 Paper Acceptance Rate 30 of 122 submissions, 25%;
Overall Acceptance Rate 447 of 1,461 submissions, 31%

Upcoming Conference

SPAA '25
37th ACM Symposium on Parallelism in Algorithms and Architectures
July 28 - August 1, 2025
Portland , OR , USA

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all
  • (2024)History-Independent Concurrent ObjectsProceedings of the 43rd ACM Symposium on Principles of Distributed Computing10.1145/3662158.3662814(14-24)Online publication date: 17-Jun-2024
  • (2024)Teaching Parallel Algorithms Using the Binary-Forking Model2024 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)10.1109/IPDPSW63119.2024.00080(346-351)Online publication date: 27-May-2024
  • (2023)Efficient Parallel Functional Programming with EffectsProceedings of the ACM on Programming Languages10.1145/35912847:PLDI(1558-1583)Online publication date: 6-Jun-2023
  • (2023)Parallel Strong Connectivity Based on Faster ReachabilityProceedings of the ACM on Management of Data10.1145/35892591:2(1-29)Online publication date: 20-Jun-2023
  • (2022)Hierarchical agglomerative graph clustering in poly-logarithmic depthProceedings of the 36th International Conference on Neural Information Processing Systems10.5555/3600270.3601936(22925-22940)Online publication date: 28-Nov-2022
  • (2021)ViperProceedings of the VLDB Endowment10.14778/3461535.346154314:9(1544-1556)Online publication date: 22-Oct-2021
  • (2021)ConnectItProceedings of the VLDB Endowment10.14778/3436905.343692314:4(653-667)Online publication date: 22-Feb-2021
  • (2021)Parallel Index-Based Structural Graph Clustering and Its ApproximationProceedings of the 2021 International Conference on Management of Data10.1145/3448016.3457278(1851-1864)Online publication date: 9-Jun-2021
  • (2021)Efficient Stepping Algorithms and Implementations for Parallel Shortest PathsProceedings of the 33rd ACM Symposium on Parallelism in Algorithms and Architectures10.1145/3409964.3461782(184-197)Online publication date: 6-Jul-2021
  • (2021)PMap: A Non-volatile Lock-free Hash Map with Open Addressing2021 IEEE 10th Non-Volatile Memory Systems and Applications Symposium (NVMSA)10.1109/NVMSA53655.2021.9628805(1-7)Online publication date: 18-Aug-2021
  • 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

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media