A family of header-only, very fast and memory-friendly hashmap and btree containers. (by greg7mdp)

Parallel-hashmap Alternatives

Similar projects and alternatives to parallel-hashmap

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better parallel-hashmap alternative or higher similarity.

Suggest an alternative to parallel-hashmap

Reviews and mentions

Posts with mentions or reviews of parallel-hashmap. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-10-27.
  • Who here is ready to see some 64MB blocks on mainnet?
    5 projects | | 27 Oct 2021
    Also, the phmap::parallel_flat_hash_map can be used from multiple threads without any locking, if you are willing to add a little extra code. If hash map contention is a bottleneck, this can be amazingly better. There is an example of doing this there. I have used this with great success myself (not in crypto code though, just started working in Ethereum recently).
    5 projects | | 27 Oct 2021
    This post has a decent list of some different concurrent hashtable implementations. Incidentally, the author of parallel-hashmap is /u/greg7mdp, who is active in the Ethereum community.
  • Ambition is cute.
    2 projects | | 12 Oct 2021
    In C++, a drop-in replacement for your DSA can provide significant improvements over the standard library. Particularly the standard unordered_map class can be improved by 50% to 100% (e.g., or for static maps Of course, recognize that creating a DS/A from scratch is an entire project, and you shouldn't roll your own for an independent codebase.
  • Memory efficient hashmap?
    3 projects | | 19 Sep 2021 has a full write up on memory improvements over the equivalent C++. There’s a reference implementation I did in Rust here focused on the concurrency side.
  • A truly fast Map implementation?
    3 projects | | 24 Aug 2021
  • Don't Throw Out Your Algorithms Book Just Yet
    1 project | | 17 Aug 2021
    And modern data structures always outperform classical ones.

    Why cuckoo when you usually use swiss tables or stanford tables for longs? Or for concurrent htables?

    Learned indices (ie dynamic data structures optimized to the data) usually outperform these as well if they are properly optimized. Which can be neural nets, but also perfect hashes or just better dynamic lookup methods. Like three-way array lookups, properly compressed, as with Unicode. Not everything needs to be a NN, though it helps if you see no structure in the data.

  • prorab: non-recursive GNU make build system
    6 projects | | 19 Jun 2021
    I know that it's beside the point for this subthread but if this is an actual problem for you then try the flat containers in (derived from Abseil's).
  • B+-Tree library
    1 project | | 12 Jun 2021
    There is an excellent btree implementation in my phmap library (header only)
  • Experiences with Concurrent Hash Map Libraries
    8 projects | | 27 Apr 2021
    I'm the author of parallel-hashmap. There are ways to do what you suggest either lock-free, or with minimal locking. If you have a test program for your use case I'd be happy to adapt it for using phmap.
    8 projects | | 27 Apr 2021
  • Highest Performance C++ Libraries to Replace Std Features?
    9 projects | | 19 Mar 2021
    actually, std::map and std::set are very inefficient, and can be very advantageously replaces by phmap::btree_map and phmap::btree_set from my repo. Same for unordered_map and unordered_set.
    9 projects | | 19 Mar 2021
    If you want to try a header-only implementation of the Abseil containers (hash maps and btree), check out (partial Abseil code fork with my changes)
  • Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust
    9 projects | | 15 Mar 2021
    The use of unordered_map and the unnecessary copy stood out to me also. I changed the copy to a move, and replaced std::unordered_map with phmap::flat_hash_map(a drop in, header-only replacement, link). I got 1.56s for the original version, and 1.29s for the new version. Scaling the results so my 1.56s corresponds to his 1.75s, the new version would land at ~1.45s on his computer, about on par with the Rust results.
  • Top 20 C multithreading mistakes and how to avoid them - A CODER'S JOURNEY
    1 project | | 27 Jan 2021
    As for performance, set is slow, too; unordered_set is likely to perform better, as long as you don't actually need ordering. Any third-party set/unordered_set is going to outperform both. I'd recommend looking into this if you're not opposed to using third-party libs.
  • A Debugging Tip: Write Custom Visualizers in Visual Studio
    2 projects | | 11 Jan 2021
    Yes, these are nice, I wrote some for the phmap library. I wish that there was a standard (and portable across compilers) way to do this though, maybe by adding a specific function to our classes.


Basic parallel-hashmap repo stats
13 days ago

greg7mdp/parallel-hashmap is an open source project licensed under Apache License 2.0 which is an OSI approved license.

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
Find remote C++ jobs at our new job board There is 1 new remote job listed recently.
Are you hiring? Post a new remote job listing for free.