Create a more efficient caching structure for location lookup
In the 64 bit merge, spring cleaning was eliminated in order to clean up the code and remove the large CkLocRec class hierarchy. In doing so, location lookup was changed to use a std::map, however the intent was that eventually a more efficient caching structure would be used that not only provided faster lookups, but took over some of the spring cleaning functionality by behaving similarly to a cache. The original commit can be found here: https://charm.cs.illinois.edu/gerrit/gitweb?p=charm.git;a=commit;h=337fdfc5d9628a6575fbbddba4e977d7ba9839c6
#2 Updated by Sam White over 1 year ago
Change CkLocMgr's std::unordered_map's to ska::flat_hash_map's: https://charm.cs.illinois.edu/gerrit/#/c/3170/
Need to check compiler dependencies of this, benchmark its performance with applications, and potentially write a PUP routine for it.
ska::flat_hash_map is taken from: https://github.com/skarupke/flat_hash_map
ska::flat_hash_map is described and micro-benchmarked here: https://probablydance.com/2017/02/26/i-wrote-the-fastest-hashtable/
Another hash table implementation to look at would be tsl::hopscotch_map: https://github.com/Tessil/hopscotch-map