New Concurrent Hash Maps for C++
preshing.com
New Concurrent Hash Maps for C++
1–10 of 31 posts
Re: New Concurrent Hash Maps for C++
#2Re: New Concurrent Hash Maps for C++
#3Re: New Concurrent Hash Maps for C++
#4How much overhead does std::mutex add in the single-threaded case for std::map? Because its kinda curious that this new map is more than twice as fast as std::map even on single thread.
Re: New Concurrent Hash Maps for C++
#5I guess it depends on the workload ratio...
Would have been nice to see a binned/sharded hashmap in the results as well, I've seen pretty good scalability on those as well.
Re: New Concurrent Hash Maps for C++
#6How much overhead does std::mutex add in the single-threaded case for std::map? Because its kinda curious that this new map is more than twice as fast as std::map even on single thread.
std::map is a RB tree, not a hash map.
Re: New Concurrent Hash Maps for C++
#7Interesting and impressive performance. The requirement to periodically halt every thread seemed like a bit of a downer though. Am I reading that wrong?
Re: New Concurrent Hash Maps for C++
#8Re: New Concurrent Hash Maps for C++
#9Intel TBB scales proportionally, which is precisely what you'd want here. Junction starts to flatten out on 6th CPU, which implies that it has fundamental design issues that crop up at higher CPU counts. Chances are that its performance not only won't scale further, but will actually drop further down the graph.
On other hand TBB code can be put throught some routine code optimization (hand-coded assembly and such) to increase its performance without affecting its linear graph shape.
Re: New Concurrent Hash Maps for C++
#10How much overhead does std::mutex add in the single-threaded case for std::map? Because its kinda curious that this new map is more than twice as fast as std::map even on single thread.
Mutex generates a lot of cache coherency traffic and saturates the CPU internal ring bus. NUMA case it'll of course quickly saturate lower bandwidth CPU external QPI link(s).
Contested mutexes perform a lot better on a typical laptop than on a server.