Open
Description
Atoms are small, and the memory allocations for atoms are likely to be highly fragmented, all over RAM.
This will result in graph-crawls (pattern-searches) that have very high d-cache and d-tlb and pte misses. One way to minize some of this is the use HUGE PAGES (this works, and gives a 30% boost on the genomics datasets).
Another way would be to allocate atomspace atoms out of a different heap than "ordinary" allocations, and to use a locality-allocator for that heap. That is, it should work like the block-allocator for modern file-systems: nearby atoms should be allocated on the same page, and unrelated atoms should be allocated from distant pages. Do such allocators exist?
This is in reference to the email chain w/ Predrag Radović here